Pierwszy program
🎯 Po co Ci to?
Między Tobą a komputerem stoi bariera językowa: Ty myślisz po polsku, procesor rozumie tylko instrukcje zapisane bitami. Języki programowania to tłumacze. Piszesz tekst zrozumiały dla człowieka, a interpreter — program-tłumacz — wykonuje go linijka po linijce. Dziś przetłumaczysz swój pierwszy przepis i zobaczysz trzy rzeczy, z których składa się niemal każdy program świata: wejście, przetwarzanie, wyjście.
✅ Czego się nauczysz
Po tej jednostce potrafisz:
- uruchomić program w Pythonie (w dowolnym środowisku) i przeczytać, co poszło nie tak;
- używać
print,inputi zmiennych, rozumiejąc, co dzieje się w pamięci; - rozróżnić tekst od liczby i świadomie zamieniać jedno w drugie.
📘 Wyjaśnienie
Środowisko pracy. Do pisania w Pythonie potrzebujesz interpretera i dowolnego edytora — razem bywają opakowane w środowiska: od minimalistycznego IDLE (instalowanego razem z Pythonem), przez edytory z wtyczkami, po przeglądarkowe konsole Pythona, które działają bez instalowania czegokolwiek. Wybór jest kwestią wygody, nie wiary — program jest ten sam. Znajdź cokolwiek, w czym możesz wpisać kod i nacisnąć „uruchom".
Wyjście. Tradycją nakazaną od półwiecza pierwszy program wita świat:
print("Witaj, świecie!")
print wypisuje na ekran to, co dostanie w nawiasie. Tekst — informatycy mówią: napis — ujmujemy w cudzysłowy, żeby odróżnić go od nazw i liczb.
Zmienne. Program musi coś pamiętać. Zmienna to zapamiętana wartość z etykietą — znasz ją z pseudokodu (dział 1), w Pythonie strzałkę ← zastępuje znak =:
imie = "Ala"
wiek = 17
za_rok = wiek + 1
print(imie, "za rok będzie mieć", za_rok, "lat")
Przeczytaj to jak informatyk: „do szufladki imie włóż napis Ala; do wiek — liczbę 17; policz wiek + 1 i wynik włóż do za_rok". Znak = w programowaniu nie jest matematycznym „równa się" — to rozkaz przypisania, działający z prawej do lewej. Dlatego linijka wiek = wiek + 1 jest w programie zupełnie legalna (policz prawą stronę: 18, włóż do szufladki wiek), choć na matematyce oblałaby sprawdzian.
Wejście. Program, który zawsze robi to samo, szybko nudzi. input zatrzymuje program i czeka, aż użytkownik coś wpisze:
imie = input("Jak masz na imię? ")
rok = input("Który mamy rok? ")
urodzony = int(rok) - 17
print(imie, "- jeśli masz 17 lat, urodziłeś się w roku", urodzony)
Kluczowy szczegół: input zawsze zwraca napis. Nawet jeśli użytkownik wpisał 2026, dostajesz tekst „2026" — ciąg czterech znaków, nie liczbę (pamiętasz z działu 2: to zupełnie inne reprezentacje!). Zanim policzysz, przetłumacz: int(...) zamienia napis na liczbę całkowitą, float(...) — na liczbę z częścią ułamkową, a str(...) działa w drugą stronę.
💭 Pomyśl: Co wypisze ten program, jeśli użytkownik wpisze 5?
liczba = input("Podaj liczbę: ") print(liczba + liczba)
Sprawdź odpowiedź
Wypisze 55 — nie 10. input zwrócił napis "5", a + dla napisów oznacza sklejenie (konkatenację): "5" + "5" to "55". Ten sam znak +, dwa różne działania — o tym, które zostanie użyte, decyduje typ wartości. To najczęstszy błąd pierwszego tygodnia programowania; teraz już wiesz, że lekarstwem jest int(liczba).
💻 Kod krok po kroku
Program-kasjer: liczy resztę do wydania.
cena = int(input("Cena (zł): ")) # napis od użytkownika → liczba
zaplacono = int(input("Zapłacono (zł): "))
reszta = zaplacono - cena # zwykła arytmetyka na liczbach
print("Reszta:", reszta, "zł") # wypisanie kilku rzeczy po przecinku
Tekst po znaku # to komentarz — notatka dla człowieka, którą interpreter całkowicie ignoruje. Dobry komentarz mówi „po co", nie „co" (to widać z kodu).
⚠️ Uwaga, pułapka
Komputer wykonuje program ściśle od góry do dołu. Jeśli użyjesz zmiennej przed jej utworzeniem — program stanie z błędem NameError. Jeżeli w nazwie zrobisz literówkę (imei zamiast imie), Python nie domyśli się, „o co chodziło" — dla niego to po prostu nieistniejąca szufladka. Czytaj komunikaty błędów: wbrew pozorom są po Twojej stronie i zwykle wskazują numer feralnej linijki.
🛠️ Teraz Ty
Z komputerem: napisz program, który pyta o imię i rok urodzenia, a wypisuje, ile lat użytkownik skończy w tym roku. Przetestuj na sobie i na kimś urodzonym w zeszłym stuleciu. Bez komputera: prześledź w tabelce (zmienna → wartość) własny program dla danych „Ala, 2009" — dokładnie tak, jak śledziłeś algorytmy w dziale 1.
📐 Definicje tej lekcji
- Interpreter — program wykonujący kod źródłowy linijka po linijce.
- Zmienna — nazwana wartość w pamięci;
=to przypisanie (prawa strona liczona najpierw). - Napis (string) — tekst w cudzysłowach; typ inny niż liczba, nawet gdy wygląda jak liczba.
- Komentarz — tekst po
#, ignorowany przez interpreter, przeznaczony dla ludzi.
📌 Najważniejsze w pigułce
- Program = wejście → przetwarzanie → wyjście; w Pythonie:
input→ arytmetyka/logika →print. =przypisuje (z prawej do lewej);wiek = wiek + 1jest legalne i częste.inputzwraca zawsze napis — przed liczeniem tłumacz przezint/float.
🎒 Zadania
- Co wypisze program? Najpierw odpowiedz na kartce, potem sprawdź.
a = 5
b = a
a = 10
print(b)
Wskazówka i odpowiedź
Wypisze 5. Linijka b = a kopiuje wartość (5) do szufladki b; późniejsza zmiana a niczego w b nie rusza. Zmienna to szufladka z kopią, nie sznurek przywiązany do innej szufladki. (Zapamiętaj to zdanie — w jednostce 3.4 przy listach czeka Cię ciekawy wyjątek.)
- Napisz program liczący pole prostokąta: pyta o dwa boki (mogą być ułamkowe!) i wypisuje wynik. Które tłumaczenie typów musisz wybrać i dlaczego?
Wskazówka i odpowiedź
float(input(...)) dla obu boków — int uciąłby 2,5 m do błędu (napis „2.5" w ogóle nie da się przetłumaczyć na int). Rdzeń: a = float(input("Bok a: ")), b = float(...), print("Pole:", a * b). Uwaga praktyczna: Python oczekuje kropki dziesiętnej, nie przecinka.
- Prześledź program i wyjaśnij wynik, odwołując się do kolejności wykonywania:
x = 3
x = x * x
x = x + 1
print(x)
Wskazówka i odpowiedź
Od góry: x = 3; potem prawa strona x * x = 9, przypisana do x; potem x + 1 = 10. Wypisze 10. Każda linijka widzi stan pamięci po wszystkich poprzednich — program to film, nie fotografia.
🔍 Sprawdź, czy umiesz
- Napisać od zera program: dwa
input, jedno obliczenie, jedenprint. - Wyjaśnić różnicę między
"7"a7i pokazać, jak przejść między nimi. - Powiedzieć, co robi
=i dlaczegox = x + 1ma sens.