Python dla początkujących: Pierwsze kroki

Python to jeden z najpopularniejszych języków programowania na świecie, ceniony za swoją prostotę i czytelność. Jest to idealny język do nauki dla osób, które dopiero rozpoczynają swoją przygodę z programowaniem. W tym artykule przedstawimy podstawy Pythona i pokażemy, dlaczego warto właśnie od niego zacząć naukę.

Dlaczego warto uczyć się Pythona?

Python ma wiele zalet, które czynią go doskonałym wyborem dla początkujących programistów:

Instalacja Pythona

Zanim zaczniemy programować, musimy zainstalować Pythona na naszym komputerze. Oto jak to zrobić:

Windows

  1. Przejdź do oficjalnej strony Pythona: www.python.org/downloads
  2. Pobierz najnowszą wersję Pythona dla systemu Windows
  3. Uruchom pobrany plik instalacyjny
  4. Upewnij się, że zaznaczona jest opcja "Add Python to PATH" (Dodaj Pythona do ścieżki systemowej)
  5. Kliknij "Install Now" (Zainstaluj teraz)

macOS

  1. Przejdź do oficjalnej strony Pythona: www.python.org/downloads
  2. Pobierz najnowszą wersję Pythona dla systemu macOS
  3. Uruchom pobrany plik instalacyjny i postępuj zgodnie z instrukcjami

Alternatywnie, jeśli masz zainstalowanego Homebrew, możesz użyć polecenia: brew install python

Linux

W większości dystrybucji Linuxa Python jest już zainstalowany. Możesz sprawdzić jego wersję, wpisując w terminalu:

python3 --version

Jeśli Python nie jest zainstalowany, możesz go zainstalować za pomocą menedżera pakietów Twojej dystrybucji, np.:

# Ubuntu/Debian
sudo apt update
sudo apt install python3 python3-pip

# Fedora
sudo dnf install python3 python3-pip

# Arch Linux
sudo pacman -S python python-pip

Pierwsze kroki w Pythonie

Po zainstalowaniu Pythona możemy rozpocząć naukę programowania. Zacznijmy od najprostszego programu, czyli wyświetlenia napisu "Hello, World!".

Hello, World!

Uruchom interpreter Pythona, wpisując w terminalu lub wierszu poleceń python lub python3, a następnie wpisz:

print("Hello, World!")

I gotowe! Właśnie napisałeś swój pierwszy program w Pythonie, który wyświetla tekst na ekranie.

Możesz również utworzyć plik z rozszerzeniem .py (np. hello.py) i umieścić w nim ten kod, a następnie uruchomić go poleceniem:

python hello.py

Podstawowe typy danych i operacje

Python obsługuje różne typy danych, które pozwalają na reprezentowanie różnych rodzajów informacji. Oto najważniejsze z nich:

Liczby

Python obsługuje liczby całkowite (int), zmiennoprzecinkowe (float) oraz zespolone (complex):

# Liczby całkowite
x = 10
y = -5

# Liczby zmiennoprzecinkowe
pi = 3.14159
e = 2.71828

# Operacje matematyczne
suma = x + y        # Dodawanie: 5
roznica = x - y     # Odejmowanie: 15
iloczyn = x * y     # Mnożenie: -50
iloraz = x / y      # Dzielenie: -2.0
potega = x ** 2     # Potęgowanie: 100
modulo = x % 3      # Reszta z dzielenia: 1

Ciągi znaków (stringi)

Ciągi znaków, czyli teksty, są reprezentowane w Pythonie jako typ str:

# Definiowanie stringów
imie = "Jan"
nazwisko = 'Kowalski'
pelne_imie = imie + " " + nazwisko  # Konkatenacja: "Jan Kowalski"

# Metody stringów
powitanie = "Cześć, świecie!"
print(powitanie.upper())         # CZEŚĆ, ŚWIECIE!
print(powitanie.lower())         # cześć, świecie!
print(powitanie.replace("ś", "s")) # Czesć, świecie!
print(len(powitanie))            # Długość: 15

# Formatowanie stringów
wiek = 30
tekst = f"{imie} ma {wiek} lat."  # Jan ma 30 lat.

Listy

Listy to uporządkowane, modyfikowalne kolekcje elementów:

# Tworzenie listy
owoce = ["jabłko", "banan", "gruszka"]

# Dostęp do elementów
pierwszy_owoc = owoce[0]  # "jabłko" (indeksowanie zaczyna się od 0)
ostatni_owoc = owoce[-1]  # "gruszka" (indeksowanie ujemne od końca)

# Modyfikacja listy
owoce.append("pomarańcza")   # Dodaje element na koniec
owoce.insert(1, "truskawka") # Wstawia element na określonej pozycji
usuniety = owoce.pop(2)      # Usuwa element i go zwraca: "banan"
owoce.remove("jabłko")       # Usuwa element po wartości

# Operacje na listach
print(len(owoce))           # Długość listy: 3
print("gruszka" in owoce)   # Sprawdzenie czy element istnieje: True

# Slicing (wycinanie fragmentów listy)
liczby = [0, 1, 2, 3, 4, 5]
fragment = liczby[1:4]  # [1, 2, 3] (od indeksu 1 do 3 włącznie)
co_drugi = liczby[::2]  # [0, 2, 4] (co drugi element)

Krotki (tuple)

Krotki są podobne do list, ale są niemodyfikowalne (immutable):

# Tworzenie krotki
punkty = (10, 20)  # Krotka z dwoma elementami
jeden_element = (5,)  # Krotka z jednym elementem (przecinek jest ważny!)

# Dostęp do elementów
x = punkty[0]  # 10
y = punkty[1]  # 20

# Rozpakowanie krotki
x, y = punkty  # x = 10, y = 20

Słowniki (dictionaries)

Słowniki przechowują dane w postaci par klucz-wartość:

# Tworzenie słownika
osoba = {
    "imie": "Jan",
    "nazwisko": "Kowalski",
    "wiek": 30,
    "hobby": ["programowanie", "muzyka", "sport"]
}

# Dostęp do wartości
imie = osoba["imie"]        # Jan
hobby = osoba.get("hobby")  # ["programowanie", "muzyka", "sport"]

# Modyfikacja słownika
osoba["wiek"] = 31              # Zmiana wartości
osoba["zawod"] = "programista"  # Dodanie nowej pary klucz-wartość
del osoba["hobby"]              # Usunięcie pary klucz-wartość

# Operacje na słownikach
klucze = osoba.keys()    # Uzyskanie kluczy
wartosci = osoba.values()  # Uzyskanie wartości
pary = osoba.items()     # Uzyskanie par klucz-wartość

Zbiory (sets)

Zbiory to nieuporzadkowane kolekcje unikalnych elementów:

# Tworzenie zbioru
liczby = {1, 2, 3, 4, 5, 5}  # Duplikaty są automatycznie usuwane: {1, 2, 3, 4, 5}

# Operacje na zbiorach
liczby.add(6)       # Dodanie elementu
liczby.remove(3)    # Usunięcie elementu

# Operacje zbiorowe
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
unia = a | b          # Suma zbiorów: {1, 2, 3, 4, 5, 6}
czesc_wspolna = a & b  # Część wspólna: {3, 4}
roznica = a - b        # Różnica: {1, 2}
roznica_symetryczna = a ^ b  # Różnica symetryczna: {1, 2, 5, 6}

Instrukcje warunkowe

Instrukcje warunkowe pozwalają na wykonanie różnych bloków kodu w zależności od spełnienia określonych warunków.

wiek = 20

if wiek < 18:
    print("Jesteś niepełnoletni.")
elif wiek == 18:
    print("Właśnie osiągnąłeś pełnoletność!")
else:
    print("Jesteś pełnoletni.")

# Operator trójargumentowy
status = "pełnoletni" if wiek >= 18 else "niepełnoletni"
print(f"Status: {status}")

Pętle

Pętle pozwalają na wielokrotne wykonanie tego samego bloku kodu.

Pętla for

# Iteracja po sekwencji
owoce = ["jabłko", "banan", "gruszka"]
for owoc in owoce:
    print(f"Lubię {owoc}.")

# Iteracja z wykorzystaniem funkcji range()
for i in range(5):  # 0, 1, 2, 3, 4
    print(i)

# Iteracja po słowniku
osoba = {"imie": "Jan", "nazwisko": "Kowalski", "wiek": 30}
for klucz, wartosc in osoba.items():
    print(f"{klucz}: {wartosc}")

Pętla while

# Pętla wykonywana dopóki warunek jest prawdziwy
licznik = 0
while licznik < 5:
    print(f"Licznik: {licznik}")
    licznik += 1

# Pętla z instrukcją break (przerwanie pętli)
while True:
    odpowiedz = input("Wpisz 'koniec' aby zakończyć: ")
    if odpowiedz == "koniec":
        break
    print(f"Wpisałeś: {odpowiedz}")

# Pętla z instrukcją continue (przejście do następnej iteracji)
for i in range(10):
    if i % 2 == 0:  # Jeśli liczba jest parzysta
        continue    # Przejdź do następnej iteracji
    print(i)        # Wypisze tylko nieparzyste liczby

Funkcje

Funkcje to bloki kodu, które można wielokrotnie wykorzystywać.

# Definiowanie funkcji
def powitanie(imie):
    return f"Cześć, {imie}!"

# Wywołanie funkcji
wiadomosc = powitanie("Anna")
print(wiadomosc)  # Cześć, Anna!

# Funkcja z wieloma parametrami
def dodaj(a, b):
    return a + b

suma = dodaj(5, 3)  # 8

# Funkcja z parametrami domyślnymi
def powitanie_z_jezykiem(imie, jezyk="polski"):
    if jezyk == "polski":
        return f"Cześć, {imie}!"
    elif jezyk == "angielski":
        return f"Hello, {imie}!"
    else:
        return f"Nie znam tego języka, ale cześć {imie}!"

print(powitanie_z_jezykiem("Jan"))          # Cześć, Jan!
print(powitanie_z_jezykiem("John", "angielski"))  # Hello, John!

# Funkcja z dowolną liczbą argumentów
def suma_wszystkich(*liczby):
    return sum(liczby)

print(suma_wszystkich(1, 2, 3, 4, 5))  # 15

Obsługa wyjątków

Wyjątki to zdarzenia, które powstają podczas wykonywania programu i zakłócają jego normalny przepływ. Python dostarcza mechanizm obsługi wyjątków, aby radzić sobie z takimi sytuacjami.

try:
    liczba = int(input("Podaj liczbę: "))
    wynik = 10 / liczba
    print(f"10 / {liczba} = {wynik}")
except ValueError:
    print("To nie jest prawidłowa liczba!")
except ZeroDivisionError:
    print("Nie można dzielić przez zero!")
except Exception as e:
    print(f"Wystąpił błąd: {e}")
else:
    print("Operacja udana!")
finally:
    print("Ten blok wykonuje się zawsze, niezależnie od wystąpienia wyjątku.")

Moduły i pakiety

Moduły to pliki zawierające definicje i instrukcje Pythona, które można zaimportować do innych programów. Pakiety to kolekcje powiązanych modułów.

# Importowanie całego modułu
import math
print(math.sqrt(16))  # 4.0

# Importowanie określonych funkcji z modułu
from math import sqrt, pi
print(sqrt(16))       # 4.0
print(pi)             # 3.141592653589793

# Importowanie modułu z aliasem
import math as m
print(m.sqrt(16))     # 4.0

# Importowanie wszystkich funkcji z modułu (nie zalecane w kodzie produkcyjnym)
from math import *
print(sqrt(16))       # 4.0
print(sin(0))         # 0.0

Praca z plikami

Python umożliwia odczytywanie i zapisywanie plików, co jest przydatne w wielu aplikacjach.

# Zapisywanie do pliku
with open("test.txt", "w", encoding="utf-8") as plik:
    plik.write("To jest pierwsza linia.\n")
    plik.write("To jest druga linia.\n")

# Odczytywanie z pliku
with open("test.txt", "r", encoding="utf-8") as plik:
    zawartosc = plik.read()
    print(zawartosc)

# Odczytywanie pliku linia po linii
with open("test.txt", "r", encoding="utf-8") as plik:
    for linia in plik:
        print(linia.strip())  # strip() usuwa białe znaki (np. \n) na początku i końcu

Projekty dla początkujących

Najlepszym sposobem nauki programowania jest praktyka. Oto kilka pomysłów na projekty, które możesz zrealizować, aby doskonalić swoje umiejętności w Pythonie:

  1. Kalkulator - stwórz prosty kalkulator konsolowy, który obsługuje podstawowe operacje matematyczne.
  2. Gra w zgadywanie liczby - komputer wybiera losową liczbę, a użytkownik próbuje ją odgadnąć.
  3. Lista zadań (todo list) - aplikacja konsolowa do zarządzania listą zadań (dodawanie, usuwanie, oznaczanie jako wykonane).
  4. Pogodynka - program, który pobiera informacje o pogodzie z API i wyświetla je użytkownikowi.
  5. Notatnik - prosta aplikacja do zapisywania i odczytywania notatek.
  6. Analizator tekstu - program, który analizuje tekst i wyświetla statystyki (liczba słów, najczęściej występujące słowa itp.).

Zasoby do nauki

Jest wiele świetnych zasobów do nauki Pythona:

Podsumowanie

Python to świetny język do nauki programowania dzięki swojej prostej składni i wszechstronności. W tym artykule omówiliśmy podstawy Pythona: typy danych, operacje, instrukcje warunkowe, pętle, funkcje, obsługę wyjątków, moduły i pracę z plikami.

Najważniejsze jest, aby praktykować i tworzyć własne projekty. Nie zniechęcaj się, jeśli napotkasz problemy - każdy programista przez to przechodzi. Internet jest pełen zasobów, które pomogą Ci rozwiązać napotkane trudności.

Powodzenia w nauce Pythona!