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, input i 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 + 1 jest legalne i częste.
  • input zwraca zawsze napis — przed liczeniem tłumacz przez int/float.

🎒 Zadania

  1. 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.)

  1. 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.

  1. 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, jeden print.
  • Wyjaśnić różnicę między "7" a 7 i pokazać, jak przejść między nimi.
  • Powiedzieć, co robi = i dlaczego x = x + 1 ma sens.

Ucz się tej jednostki z asystentem