Streszczenie
Wprowadzenie do Pythona – pierwsze kroki w programowaniu

Moduł wprowadza w świat programowania w języku Python – od podstawowych definicji i historii języka, przez instalację interpretera na trzech głównych systemach operacyjnych, aż po pierwsze uruchomienie kodu. Poznasz środowisko terminalowe, interaktywny tryb REPL oraz najważniejsze narzędzia programisty: edytory VS Code i IDLE. Nauczysz się korzystać z funkcji print() i jej parametrów (sep, end, znaki specjalne), a także pisać komentarze, unikać typowych błędów składniowych oraz stosować dobre praktyki formatowania kodu zgodne ze standardem PEP-8. Moduł kończy się praktycznymi ćwiczeniami utrwalającymi zdobytą wiedzę.

Kluczowe zagadnienia modułu:

  • Instalacja i konfiguracja środowiska — Python 3, terminal, REPL i edytory VS Code/IDLE
  • Funkcja print() i formatowanie wyjścia — parametry sep, end, znaki specjalne \n i \t, łączenie i powtarzanie tekstów
  • Komentarze i błędy — komentarze jednoliniowe i wieloliniowe, SyntaxError, NameError, czytanie komunikatów błędów
  • Dobre praktyki programistyczne — wcięcia, wielkość liter, konwencja snake_case, struktura programu, słowa kluczowe
  • Ćwiczenia praktyczne — wizytówka, ASCII art, obliczenia i formatowanie konsoli
Streszczenie - Wprowadzenie do Pythona

Moduł ten stanowi fundament całego kursu programowania w języku Python. Jego celem jest nie tylko przekazanie suchej wiedzy teoretycznej, ale przede wszystkim oswojenie studenta ze środowiskiem pracy programisty. Każde z omawianych zagadnień zostało starannie dobrane tak, aby stanowić praktyczne wprowadzenie do samodzielnego pisania kodu.

Szczególny nacisk położono na aspekty, które sprawiają najwięcej trudności początkującym: konfigurację środowiska, zrozumienie działania interpretera oraz poprawne formatowanie kodu. Ćwiczenia praktyczne na końcu modułu pozwalają zweryfikować przyswojenie materiału i utrwalić dobre nawyki programistyczne, które będą procentować w kolejnych częściach kursu.

1/50
Czym jest programowanie
  • Programowanie to w gruncie rzeczy wydawanie komputerowi precyzyjnych poleceń, krok po kroku.
  • Możesz to porównać do tworzenia szczegółowego przepisu kulinarnego dla osoby, która nigdy wcześniej nie gotowała.
  • Musisz przewidzieć każdą sytuację i podać dokładne instrukcje: 'Weź jajko', 'Rozbij jajko', 'Wrzuć na patelnię'.
  • Komputer przypomina niezwykle posłusznego, ale całkowicie pozbawionego samodzielności kucharza.
  • Kod źródłowy, który piszesz w edytorze, jest właśnie tym przepisem, tłumaczonym później na język zrozumiały dla maszyny.
  • Dzięki temu możemy automatyzować rutynowe zadania, analizować ogromne ilości danych czy tworzyć skomplikowane gry i aplikacje.
Przepis kuchenny vs program

Programowanie jest procesem twórczym, który wymaga myślenia algorytmicznego i umiejętności rozkładania złożonych problemów na mniejsze, łatwiejsze do zarządzania części. Nie chodzi tu wyłącznie o znajomość składni języka, ale przede wszystkim o umiejętność logicznego myślenia i przewidywania zachowania komputera w różnych sytuacjach.

W praktyce programista spędza więcej czasu na czytaniu kodu (swojego i cudzego) niż na jego pisaniu. Dlatego tak ważne jest od samego początku dbanie o czytelność i przejrzystość tworzonych rozwiązań. Dobrze napisany program powinien być zrozumiały nie tylko dla programisty, ale przede wszystkim dla drugiego człowieka.

3/50
Języki programowania -- przegląd
  • Podobnie jak my posługujemy się różnymi językami (polskim, angielskim, hiszpańskim), komputery mogą wykonywać instrukcje napisane w wielu różnych językach programowania.
  • Każdy z tych języków ma swoje specyficzne zastosowanie i został stworzony z myślą o rozwiązywaniu konkretnych problemów.
  • Na przykład JavaScript to król przeglądarek internetowych, Java dominuje w ogromnych systemach korporacyjnych i bankowych, a C++ jest niezastąpiony przy tworzeniu wydajnych gier trójwymiarowych.
  • Python wyróżnia się na tym tle niezwykłą wszechstronnością – można w nim zrobić niemal wszystko.
  • Dodatkowo, jego składnia jest bardzo zbliżona do naturalnego języka angielskiego, co czyni go wyjątkowo czytelnym.
  • Dzięki temu programiści mogą skupić się na rozwiązywaniu problemu, a nie na walce ze skomplikowaną gramatyką języka programowania.
Ranking popularności języków

Wybór języka programowania zależy od wielu czynników: rodzaju tworzonej aplikacji, wydajności, ekosystemu bibliotek, a także dostępności specjalistów na rynku pracy. Python wyróżnia się tym, że jest językiem ogólnego przeznaczenia, co oznacza, że można w nim realizować projekty z praktycznie każdej dziedziny informatyki.

Porównując języki programowania, warto zwrócić uwagę nie tylko na ich składnię, ale także na społeczność, dokumentację i dostępność narzędzi. Python ma jedną z największych i najbardziej aktywnych społeczności na świecie, co przekłada się na bogactwo bibliotek, tutoriali i gotowych rozwiązań. To sprawia, że nawet skomplikowane projekty można realizować szybciej niż w innych językach.

4/50
Dlaczego Python
  • Python od samego początku projektowany był z myślą o maksymalnej prostocie i elegancji.
  • Jego składnia została tak przemyślana, aby kod wyglądał niemal jak zwykłe zdania w języku angielskim.
  • Brak nadmiaru nawiasów i skomplikowanych symboli sprawia, że nauka podstaw przebiega niezwykle szybko.
  • Z tego powodu uniwersytety i szkoły na całym świecie uznają Pythona za najlepszy język pierwszego wyboru do nauki programowania.
  • Niech jednak nie zmyli Cię jego prostota – to niezwykle potężne i wydajne narzędzie.
  • Jego możliwości doceniają najwięksi giganci technologiczni: Google wykorzystuje go w swoich algorytmach, NASA w analizie danych kosmicznych, a Netflix do zarządzania potężną infrastrukturą.
Zapamiętaj: Czytelność kodu jest ważniejsza niż jego zwięzłość. Python zmusza programistów do pisania przejrzystego kodu.
Ikony zastosowań Pythona

Python został zaprojektowany z myślą o minimalizacji kosztów utrzymania kodu. Jego czytelna składnia wymusza na programiście pisanie przejrzystego i dobrze sformatowanego kodu, co jest szczególnie ważne w projektach zespołowych. Filozofia Pythona, znana jako "The Zen of Python", kładzie nacisk na prostotę i jednoznaczność rozwiązań.

Kolejną zaletą Pythona jest jego ogromny ekosystem bibliotek. Od analizy danych (pandas, numpy), przez uczenie maszynowe (TensorFlow, scikit-learn), po tworzenie aplikacji webowych (Django, Flask) – Python ma narzędzia do każdego zadania. To sprawia, że nauka tego języka otwiera drzwi do wielu specjalizacji w branży IT.

5/50
Historia Pythona
  • Początki Pythona sięgają przełomu lat 80. i 90., kiedy to holenderski programista Guido van Rossum rozpoczął nad nim pracę podczas przerw świątecznych.
  • Pierwsza oficjalna wersja ujrzała światło dzienne w lutym 1991 roku i od razu wzbudziła spore zainteresowanie.
  • Wielu ludzi mylnie zakłada, że nazwa języka nawiązuje do gatunku groźnego węża – pytona.
  • W rzeczywistości Guido van Rossum był wówczas wielkim fanem brytyjskiej grupy komediowej i ich kultowego programu 'Latający Cyrk Monty Pythona'.
  • Chcąc nadać swojemu nowemu dziełu nazwę krótką, unikalną i nieco tajemniczą, zdecydował się właśnie na słowo 'Python'.
  • Twórca przez wiele lat pełnił zaszczytną (i żartobliwą) funkcję BDFL, czyli 'Dobrotliwego Dyktatora na Całe Życie', kierując rozwojem języka aż do 2018 roku.
Oś czasu historii Pythona

Historia Pythona jest fascynującym przykładem tego, jak projekt rozpoczęty jako hobby może zrewolucjonizować branżę technologiczną. Guido van Rossum, tworząc Pythona w okresie świątecznym 1989 roku, nie przypuszczał zapewne, że jego dzieło stanie się jednym z najpopularniejszych języków programowania na świecie, używanym przez miliony programistów.

Nazwa Python, nawiązująca do Monty Pythona, nie jest jedynym humorystycznym akcentem w historii języka. Społeczność Pythona słynie z poczucia humoru, co widać w nazwach narzędzi (IDLE, pip) czy dokumentacji. Jednocześnie pod tą lekką fasadą kryje się niezwykle solidny i dopracowany język, który przeszedł długą drogę ewolucji od wersji 1.0 do współczesnych wydań.

6/50
Wersje Pythona
  • Podczas nauki oraz przeglądania starszych poradników w Internecie często natkniesz się na wzmianki o dwóch wersjach: Python 2 i Python 3.
  • Python 2 był niezwykle popularny przez kilkanaście lat, jednak zawierał pewne fundamentalne ograniczenia architektoniczne, których nie dało się naprawić bez zepsucia zgodności.
  • Z tego powodu podjęto odważną decyzję o stworzeniu Pythona 3 – nowszej, lepszej wersji, która jednak nie była w pełni zgodna ze swoim poprzednikiem.
  • Proces migracji całego świata IT z 'dwójki' na 'trójkę' był długi i momentami bolesny, ale ostatecznie zakończył się sukcesem.
  • Od 1 stycznia 2020 roku Python 2 został oficjalnie uznany za przestarzały i nie otrzymuje już nawet aktualizacji bezpieczeństwa.
  • Obecnie w nowo powstających projektach komercyjnych oraz w tym kursie korzystamy wyłącznie z nowoczesnego Pythona 3.
Zapamiętaj: Zawsze używaj Pythona w wersji 3.x. Nigdy nie zaczynaj nauki na Pythonie 2.
Porównanie Python 2 i 3

Podział na Python 2 i Python 3 był jednym z najbardziej kontrowersyjnych momentów w historii języka. Decyzja o złamaniu wstecznej kompatybilności była trudna, ale konieczna – pozwoliła na usunięcie architektonicznych ograniczeń i wprowadzenie nowoczesnych mechanizmów, takich jak lepsza obsługa Unicode czy usprawnione zarządzanie pamięcią.

Okres przejściowy, gdy obie wersje współistniały, był wyzwaniem dla społeczności. Wiele firm musiało przepisać swoje aplikacje, a programiści musieli utrzymywać znajomość obu wersji. Ostatecznie jednak decyzja o porzuceniu Pythona 2 okazała się słuszna i dzisiaj nikt nie wyobraża sobie powrotu do przestarzałej gałęzi języka.

7/50
Gdzie używa się Pythona
  • Python jest często określany jako tak zwany 'szwajcarski scyzoryk' w świecie języków programowania.
  • Jego główną domeną, w której obecnie nie ma sobie równych, jest sztuczna inteligencja (AI) oraz uczenie maszynowe (Machine Learning).
  • Święci również triumfy w dziedzinie Data Science, gdzie analitycy wykorzystują go do przetwarzania i wizualizacji gigantycznych zbiorów danych.
  • Dzięki bogatemu ekosystemowi bibliotek, za jego pomocą niezwykle łatwo jest napisać proste skrypty automatyzujące nudne, codzienne zadania biurowe.
  • Python doskonale sprawdza się również w budowie nowoczesnych i potężnych aplikacji internetowych (backendu).
  • Na przykład cała logika początkowej wersji Instagrama czy backend serwisu Spotify zostały zbudowane właśnie w oparciu o frameworki pythonowe.
Mapa zastosowań

Wszechstronność Pythona sprawia, że znajduje on zastosowanie w niemal każdej dziedzinie nowoczesnej technologii. W sztucznej inteligencji i uczeniu maszynowym Python jest bezkonkurencyjny dzięki bibliotekom takim jak TensorFlow, PyTorch czy scikit-learn. Analitycy danych używają go do przetwarzania ogromnych zbiorów informacji za pomocą pandas i numpy.

W dziedzinie tworzenia stron internetowych Python oferuje frameworki takie jak Django i Flask. W automatyzacji i skryptowaniu jest niezastąpiony do pisania skryptów administracyjnych. Nawet w branży gier znajdziemy Pythona w silniku Godot czy jako język skryptowy w profesjonalnych pakietach, takich jak Blender czy Maya.

8/50
Instalacja -- Windows
  • Aby zacząć przygodę z Pythonem na systemie Windows, musisz najpierw pobrać i zainstalować jego oficjalny interpreter.
  • Interpreter to specjalny program, który czyta napisany przez Ciebie kod i na bieżąco tłumaczy go na niezrozumiały dla człowieka język maszynowy.
  • Instalator znajdziesz zawsze w sekcji 'Downloads' na oficjalnej stronie domowej projektu: python.org.
  • Podczas uruchamiania kreatora instalacji, na samym pierwszym ekranie na dole znajduje się niepozorne, ale niezwykle ważne pole wyboru: 'Add python.exe to PATH'.
  • Zaznaczenie tej opcji jest absolutnie krytyczne, gdyż informuje ono system Windows, gdzie ma szukać języka Python przy używaniu konsoli.
  • Pominięcie tego kroku skutkuje bardzo popularnym błędem o 'nierozpoznanym poleceniu' podczas prób uruchamiania własnych programów z terminala.
Zapamiętaj: Jeśli zapomnisz zaznaczyć 'Add to PATH', system Windows nie będzie wiedział, czym jest komenda 'python'.
# Instalacja Pythona to proces typu 'Next -> Next -> Finish'.
# Pamiętaj o zaznaczeniu opcji 'Add python.exe to PATH'!

# Po pomyślnej instalacji otwórz terminal (np. cmd.exe) i wpisz:
python --version

# Jeśli instalacja powiodła się, a PATH został dodany,
# terminal odpowie np. Python 3.12.0
            
Zrzut ekranu instalatora

Instalacja Pythona na systemie Windows jest procesem stosunkowo prostym, ale wymaga uwagi przy kilku kluczowych kwestiach. Oficjalna strona python.org oferuje instalatory dla wszystkich systemów operacyjnych, a proces instalacji został zaprojektowany tak, aby być intuicyjny nawet dla osób bez doświadczenia technicznego.

Najczęstszym błędem popełnianym podczas instalacji jest pominięcie opcji dodania Pythona do zmiennej PATH. Bez tego system Windows nie będzie w stanie odnaleźć interpretera po wpisaniu komendy "python" w terminalu. Warto również zwrócić uwagę na opcję instalacji dla wszystkich użytkowników, co ułatwia zarządzanie w środowiskach wieloosobowych.

9/50
Instalacja -- macOS i Linux
  • W przeciwieństwie do Windowsa, systemy uniksowe (takie jak macOS i różnego rodzaju dystrybucje Linuxa) zazwyczaj posiadają Pythona zainstalowanego fabrycznie.
  • Dzieje się tak, ponieważ wiele wbudowanych narzędzi systemowych opiera swoje działanie właśnie na skryptach napisanych w tym języku.
  • Problem polega jednak na tym, że domyślnie instalowana jest często przestarzała wersja (czasami nawet porzucony już Python 2).
  • Dlatego zawsze dobrą praktyką jest ręczne doinstalowanie najnowszej, w pełni wspieranej wersji stabilnej 3.x.
  • Na systemie macOS najwygodniej jest to zrobić za pomocą niezwykle popularnego menedżera pakietów o nazwie Homebrew.
  • Z kolei na dystrybucjach Linuxa bazujących na Debianie (np. Ubuntu, Mint) używamy do tego wbudowanego polecenia `apt-get` lub `apt`.
# ==============================
# Instalacja na systemie macOS
# ==============================
# Pobranie najnowszego Pythona przez menedżer Homebrew:
brew install python

# ==============================
# Instalacja na systemie Linux (Debian/Ubuntu)
# ==============================
# Aktualizacja listy pakietów:
sudo apt update
# Instalacja właściwego interpretera:
sudo apt install python3 python3-pip
            
Terminal z instalacją

Systemy Unixowe, takie jak macOS i Linux, mają wbudowane wsparcie dla Pythona, co wynika z ich architektury i historii. Mimo to zaleca się instalację najnowszej wersji interpretera, ponieważ wersje systemowe często bywają przestarzałe. macOS używa obecnie Pythona 3 jako domyślnego interpretera od wersji Catalina.

Na Linuksie zarządzanie wersjami Pythona jest szczególnie wygodne dzięki menedżerom pakietów, takim jak apt, yum czy pacman. W systemie macOS popularnym rozwiązaniem jest użycie menedżera Homebrew, który automatyzuje proces instalacji i aktualizacji. Niezależnie od systemu, warto rozważyć użycie pyenv do zarządzania wieloma wersjami Pythona na jednej maszynie.

10/50
Sprawdzenie instalacji
  • Gdy kreator instalacji zakończy pracę, pierwszym krokiem programisty powinno być upewnienie się, że oprogramowanie działa prawidłowo.
  • W tym celu musimy otworzyć konsolę systemową (Wiersz Poleceń/PowerShell w Windows lub aplikację Terminal na Macu/Linuxie).
  • W okienku konsoli wpisujemy krótkie polecenie diagnostyczne sprawdzające wersję interpretera i wciskamy klawisz Enter.
  • Na systemach Windows komenda ta zazwyczaj wygląda tak: `python --version`.
  • Na systemach Mac oraz Linux, ze względu na obecność starego Pythona 2, często trzeba wpisać `python3 --version`.
  • Wyświetlenie w odpowiedzi numeru wersji (np. Python 3.12.0) jest dowodem na to, że system 'widzi' nasz interpreter i jesteśmy gotowi do pracy.
# Uruchamiamy Wiersz Polecenia (CMD) lub Terminal i wpisujemy:
python --version

# Przykładowa prawidłowa odpowiedź systemu:
Python 3.12.0

# UWAGA: Jeśli zobaczysz komunikat błędu typu:
# "'python' is not recognized as an internal or external command"
# oznacza to, że przy instalacji na Windows zapomniano zaznaczyć "Add to PATH".
            
Terminal z wynikiem

Weryfikacja poprawności instalacji to kluczowy krok, który pozwala uniknąć frustracji na późniejszych etapach nauki. Komenda `python --version` powinna zwrócić numer zainstalowanej wersji. W niektórych systemach, szczególnie tych z równolegle zainstalowanym Pythonem 2, konieczne może być użycie `python3 --version`.

Warto również sprawdzić działanie menedżera pakietów pip, który jest niezbędny do instalacji zewnętrznych bibliotek. Komenda `pip --version` potwierdzi jego dostępność. Jeśli pip nie jest zainstalowany, można go doinstalować za pomocą narzędzia ensurepip, które jest dołączone do standardowej instalacji Pythona od wersji 3.4.

11/50
Terminal / wiersz poleceń
  • Zanim napiszesz swoją pierwszą linijkę kodu, musisz zaprzyjaźnić się z terminalem (zwanym też wierszem poleceń).
  • Jest to specjalne, zazwyczaj czarne okienko, w którym komunikujemy się z komputerem wyłącznie za pomocą tekstu, całkowicie rezygnując z myszki.
  • Na systemach Windows nazywa się to Wiersz Polecenia (cmd) lub PowerShell, na Mac/Linux po prostu Terminal.
  • Dla profesjonalnego programisty terminal jest naturalnym środowiskiem pracy, o wiele szybszym i potężniejszym niż klikanie po interfejsie graficznym.
  • W terminalu możemy m.in. przeglądać foldery, tworzyć nowe pliki, a przede wszystkim – uruchamiać napisane przez nas programy.
  • Z początku czarny ekran może wydawać się przerażający, ale znajomość zaledwie kilku podstawowych komend wystarczy do swobodnej pracy.
# ==============================
# Kilka przydatnych komend na start (Windows):
# ==============================

# Wyświetla pliki i foldery w bieżącym folderze:
dir

# Przejście do konkretnego folderu (np. na Pulpit):
cd Pulpit

# Cofnięcie się o jeden folder "wyżej":
cd ..

# Wyczyszczenie ekranu z poprzednich wyników:
cls
            
Porównanie terminali

Terminal jest jednym z najpotężniejszych narzędzi w arsenale programisty. Jego znajomość jest niezbędna nie tylko do uruchamiania skryptów, ale także do zarządzania plikami, kontroli wersji (git), konfiguracji sieci czy debugowania aplikacji. Pomimo pozornej trudności, podstawowe komendy terminala można opanować w ciągu kilku godzin.

W systemie Windows warto zapoznać się zarówno z tradycyjnym wierszem poleceń (cmd), jak i z nowoczesnym PowerShell, który oferuje znacznie większe możliwości. Na systemach Unixowych domyślnym shell jest bash lub zsh. Niezależnie od platformy, znajomość komend takich jak cd, ls, mkdir, cp, mv i rm stanowi absolutne minimum niezbędne do swobodnej pracy.

12/50
Czym jest REPL
  • REPL to jedno z najpotężniejszych narzędzi do nauki języka Python. Skrót pochodzi od Read-Eval-Print Loop (Czytaj, Oblicz, Wypisz, Powtórz).
  • Działa to jak interaktywna piaskownica – wpisujesz jedną komendę, naciskasz Enter i natychmiast widzisz rezultat.
  • Nie musisz tworzyć żadnych plików, konfigurować środowisk ani kompilować całego programu – to czysta natychmiastowa interakcja.
  • REPL jest niezwykle przydatny, gdy chcesz szybko przetestować, jak działa jakaś konkretna funkcja w Pythonie, albo gdy zapomniałeś szczegółów składni.
  • Aby go włączyć, wystarczy otworzyć terminal i wpisać polecenie `python` (lub `python3`).
  • Gdy znudzi Ci się testowanie, z REPL można wyjść z powrotem do normalnego terminala.
Zapamiętaj: REPL włącza się poprzez wpisanie słowa 'python' w terminalu i naciśnięcie Enter.
# Uruchomienie trybu interaktywnego z poziomu terminala:
python

# Zobaczysz tekst informacyjny i znak zachęty >>>
# Aby wyjść i wrócić do zwykłego wiersza poleceń wpisz:
exit()
# Pamiętaj o nawiasach () ! Na Mac/Linux działa też skrót Ctrl+D.
            
Schemat cyklu REPL

REPL (Read-Eval-Print Loop) to interaktywne środowisko programistyczne, które pozwala na eksperymentowanie z kodem Pythona w czasie rzeczywistym. Jest to doskonałe narzędzie do nauki, testowania małych fragmentów kodu oraz debugowania. W trybie REPL każda wpisana komenda jest natychmiast interpretowana i wykonywana.

REPL znajduje zastosowanie nie tylko w edukacji. Doświadczeni programiści używają go do szybkiego prototypowania algorytmów, testowania bibliotek, sprawdzania składni czy eksploracji danych. Możliwość natychmiastowego zobaczenia wyniku bez konieczności tworzenia pliku i uruchamiania go to ogromna oszczędność czasu w codziennej pracy.

13/50
Pierwsze kroki w REPL
  • Znak zachęty w REPL to kultowe trzy strzałki: `>>>`. Ich obecność na ekranie komunikuje jedną, bardzo ważną rzecz.
  • Oznaczają one, że znajdujesz się w trybie wirtualnej rozmowy z samym jądrem języka Python.
  • W tym miejscu terminal przestał reagować na komendy systemowe (jak `cd` czy `dir`) i słucha wyłącznie poleceń w języku Python.
  • Cokolwiek tu wpiszesz, Python spróbuje to niezwłocznie wykonać i jeśli tylko to możliwe, zwróci wyliczoną wartość.
  • Jeśli wpiszesz coś bezsensownego, Python wyrzuci tzw. błąd, ale nie uszkodzi to Twojego komputera.
  • Jest to bezpieczne środowisko treningowe do popełniania błędów i weryfikacji pomysłów.
# Przykładowa sesja w REPL. 
# Trzy strzałki pokazują linijki, w których wprowadzamy kod.
>>> "Witaj, to mój pierwszy kod w REPL!"
'Witaj, to mój pierwszy kod w REPL!'

# Python posłusznie zwrócił to, co do niego wpisaliśmy.
            
Sesja REPL

Znak zachęty `>>>` to wizualna informacja, że interpreter Pythona jest gotowy do przyjęcia komend. W trybie REPL nie trzeba martwić się o zapisywanie plików czy konfigurację środowiska – wystarczy otworzyć terminal, wpisać "python" i rozpocząć interakcję. To sprawia, że REPL jest idealnym miejscem do pierwszych eksperymentów z kodem.

Warto pamiętać, że REPL zapamiętuje stan między kolejnymi komendami. Oznacza to, że zmienne zdefiniowane w jednej linii są dostępne w kolejnych. To zachowanie czyni REPL szczególnie przydatnym do testowania złożonych operacji krok po kroku, gdzie każdy etap można zweryfikować przed przejściem do następnego.

14/50
REPL jako kalkulator
  • Aby oswoić się ze składnią i REPL, warto zacząć od wykorzystania Pythona jako bardzo drogiego i potężnego kalkulatora.
  • Język ten z miejsca obsługuje wszystkie podstawowe operacje matematyczne bez wpisywania jakiegokolwiek skomplikowanego kodu.
  • Możesz używać znaków `+` do dodawania, `-` do odejmowania, `*` (gwiazdka) do mnożenia oraz `/` (ukośnik) do dzielenia.
  • Co niezwykle istotne, Python doskonale zna i respektuje szkolne reguły kolejności wykonywania działań (mnożenie przed dodawaniem).
  • Jeśli chcesz wymusić na nim inną kolejność, możesz do woli wykorzystywać standardowe okrągłe nawiasy `()`.
  • Dzięki REPL oszczędzasz czas – nie musisz szukać aplikacji Kalkulator w systemie.
# Mnożenie ma pierwszeństwo nad dodawaniem:
>>> 2 + 2 * 2
6

# Wykorzystujemy nawiasy do zmiany pierwszeństwa:
>>> (10 - 3) * 5
35

# Dzielenie zawsze zwraca liczbę zmiennoprzecinkową (z kropką):
>>> 10 / 2
5.0
            
REPL z obliczeniami

Wykorzystanie Pythona jako kalkulatora to jeden z najlepszych sposobów na oswojenie się ze składnią języka. Python wspiera wszystkie podstawowe operacje arytmetyczne, a także bardziej zaawansowane funkcje matematyczne dostępne w module math. Kolejność wykonywania działań jest zgodna ze standardem matematycznym.

Python radzi sobie doskonale zarówno z liczbami całkowitymi (int), jak i zmiennoprzecinkowymi (float). Dzielenie zawsze zwraca liczbę zmiennoprzecinkową, nawet jeśli wynik jest całkowity. Dla zaawansowanych obliczeń dostępna jest operacja modulo (%) zwracająca resztę z dzielenia oraz potęgowanie (**).

15/50
Edytory kodu
  • Mimo całej potęgi REPL, nikt nie pisze w nim pełnoprawnych i dużych programów komputerowych.
  • Gdy tylko zamkniesz terminal, cała sesja w REPL bezpowrotnie ginie. Skomplikowane aplikacje muszą być zapisane na stałe w plikach.
  • Zwykły Notatnik z Windowsa pozwala na napisanie kodu, jednak praca w nim to prawdziwa udręka programisty.
  • Dlatego powstały IDE, czyli Zintegrowane Środowiska Programistyczne – specjalistyczne edytory tekstu stworzone specjalnie do pisania kodu.
  • Działają one jak rozbudowany 'Microsoft Word', lecz zamiast podkreślać błędy ortograficzne, analizują na bieżąco Twoje funkcje i nawiasy.
  • Automatycznie formatują tekst, kolorują składnię i umożliwiają łatwe zarządzanie całymi projektami.
Ikony edytorów

Edytory kodu (IDE) są niezbędnym narzędziem każdego programisty. Różnica między zwykłym notatnikiem a profesjonalnym edytorem jest ogromna – IDE oferuje podświetlanie składni, autouzupełnianie, debugger, integrację z systemem kontroli wersji i wiele innych funkcji zwiększających produktywność.

Wybór edytora jest kwestią indywidualnych preferencji. VS Code jest obecnie najpopularniejszym wyborem ze względu na lekkość i rozszerzalność. PyCharm oferuje bardziej zaawansowane funkcje dla profesjonalistów. Sublime Text jest ceniony za szybkość. Niezależnie od wyboru, warto poświęcić czas na poznanie skrótów klawiszowych i funkcji swojego edytora.

16/50
VS Code
  • Zdecydowanym liderem na rynku, używanym przez ogromną większość programistów na świecie, jest obecnie edytor Visual Studio Code (często nazywany skrótem VS Code).
  • Został on stworzony przez firmę Microsoft, jest całkowicie darmowy, bardzo lekki w działaniu i zjawiskowo wręcz łatwy w rozbudowie.
  • Zaraz po pobraniu, VS Code to bardzo sprytny, lecz 'goły' notatnik. Jego prawdziwą moc odkrywamy instalując do niego wtyczki (Extensions).
  • Aby w pełni wygodnie pisać w Pythonie, wystarczy w menu rozszerzeń w VS Code wyszukać oficjalną wtyczkę o nazwie 'Python'.
  • Wtyczka ta wyposaży edytor w wiedzę o składni Pythona, co zaowocuje inteligentnymi podpowiedziami oraz możliwością uruchamiania kodu jednym przyciskiem.
  • Inne bardzo popularne (lecz nieco cięższe) edytory to np. PyCharm od firmy JetBrains. My skupimy się na VS Code.
# Krok po kroku:
# 1. Pobierz plik instalacyjny ze strony: code.visualstudio.com
# 2. Po uruchomieniu aplikacji przejdź do zakładki "Extensions" (Ctrl+Shift+X)
# 3. W polu wyszukiwania wpisz "Python"
# 4. Zainstaluj wtyczkę autorstwa "Microsoft" i zrestartuj edytor.
            
VS Code z rozszerzeniem

Visual Studio Code to edytor stworzony przez Microsoft, który zdobył ogromną popularność dzięki swojej wszechstronności i bogatej bibliotece rozszerzeń. Mimo że jest to produkt Microsoftu, działa doskonale na wszystkich głównych systemach operacyjnych, co czyni go uniwersalnym narzędziem dla programistów z różnych środowisk.

Kluczową zaletą VS Code jest możliwość dostosowania go do własnych potrzeb poprzez instalację rozszerzeń. Dla programisty Pythona niezbędne jest rozszerzenie Python autorstwa Microsoft, które zapewnia podświetlanie składni, IntelliSense, debugowanie oraz możliwość uruchamiania kodu bezpośrednio z edytora. Warto również zainstalować rozszerzenia do formatowania kodu i zarządzania wersjami.

17/50
IDLE
  • Instalator Pythona dla Windowsa nie dostarcza tylko samego jądra wykonawczego (interpretera).
  • Wraz z nim otrzymujemy, wbudowany od razu w paczkę instalacyjną, mały edytor środowiskowy o nazwie IDLE.
  • Został on zaprojektowany jako minimalistyczne IDE i posiada na pokładzie wbudowany REPL i skromny edytor tekstu w osobnych okienkach.
  • Choć graficznie przypomina aplikacje sprzed dwudziestu lat i nie nadaje się do komercyjnych zastosowań, na absolutny start nauki wielu preferuje właśnie IDLE.
  • Jeśli w Twojej szkole czy na uczelni nie ma zainstalowanego VS Code, najprawdopodobniej będziesz pracował właśnie na IDLE.
  • Zresztą sama nazwa IDLE to ukłon w stronę członka grupy Monty Pythona – Erica Idle.
# Program IDLE możesz wyszukać normalnie w menu Start systemu Windows,
# albo błyskawicznie wywołać bezpośrednio w terminalu (o ile masz dodany PATH):
idle

# Uruchomi się osobne, jasne okienko graficzne edytora.
            
Zrzut ekranu IDLE

IDLE to środowisko programistyczne dołączane standardowo do instalacji Pythona na systemie Windows. Choć jego interfejs może wydawać się przestarzały, IDLE oferuje wszystkie niezbędne funkcje do nauki programowania: edytor kodu z podświetlaniem składni, wbudowany REPL oraz debugger.

Zaletą IDLE jest jego prostota i natychmiastowa dostępność – nie wymaga dodatkowej konfiguracji ani instalacji rozszerzeń. Dla osób rozpoczynających naukę może to być mniej przytłaczające niż zaawansowane IDE. Warto jednak pamiętać, że IDLE nie nadaje się do poważnych projektów komercyjnych i z czasem powinno się przejść na bardziej zaawansowane narzędzie.

18/50
Pierwszy plik .py
  • Aby nasza praca nie uciekła w zapomnienie po zamknięciu komputera, polecenia musimy zapisać na dysku w zwykłym pliku tekstowym.
  • Jedyną ważną różnicą jest zmiana końcówki pliku: rezygnujemy z typowego `.txt` na rzecz dedykowanego rozszerzenia `.py`.
  • Utworzenie pliku np. `moj_program.py` jednoznacznie informuje system operacyjny, że zawiera on tzw. kod źródłowy skryptu Pythonowego.
  • Z kolei edytor VS Code po odczytaniu tego rozszerzenia automatycznie załaduje wcześniej zainstalowaną wtyczkę i poprawne kolorowanie składni.
  • Unikaj dodawania spacji oraz polskich znaków (ś, ć) w nazwach plików – system operacyjny nie zawsze to dobrze znosi.
  • Plik `.py` jest absolutnie fundamentalną, najmniejszą jednostką składową każdego tworzonego oprogramowania.
# 1. W edytorze VS Code utwórz nowy plik (File -> New File)
# 2. Zapisz go od razu jako: powitanie.py na swoim Pulpicie
# 3. Wpisz w nim jedną, prostą linijkę kodu:
print("Witaj, świecie! Jestem zapisany w pliku.")
            
Edytor z pierwszym plikiem

Plik z rozszerzeniem .py jest podstawową jednostką kodu w Pythonie. Każdy program, niezależnie od swojej złożoności, składa się z jednego lub wielu takich plików. Konwencja nazewnicza zaleca używanie małych liter, cyfr i znaków podkreślenia w nazwach plików, unikając spacji i polskich znaków diakrytycznych.

Struktura pliku .py podlega pewnym konwencjom. Na górze pliku umieszcza się tzw. shebang (w systemach Unix) i kodowanie pliku. Następnie znajdują się importy, potem definicje stałych, klas i funkcji, a na końcu właściwa logika programu. Przestrzeganie tej struktury ułatwia nawigację po kodzie i czyni go bardziej przewidywalnym dla innych programistów.

19/50
Uruchamianie skryptu
  • Napisanie kodu w edytorze nie wystarczy, trzeba mu jeszcze pozwolić wejść w życie.
  • Proces uruchamiania sprowadza się do odczytania zapisanego przez Ciebie pliku przez program zwany interpreterem (zainstalowany wcześniej Python).
  • Jeśli pracujesz w VS Code, możesz to zrobić niezwykle wygodnie naciskając mały przycisk z ikoną "Play" znajdujący się w prawym górnym rogu okna.
  • Jeśli wolisz polegać na tradycyjnym terminalu, przejdź po prostu do folderu z plikiem (np. używając komendy `cd`).
  • Następnie wywołaj środowisko i wskaż precyzyjną nazwę swojego zapisanego pliku.
  • Interpreter cierpliwie przeczyta plik linijka po linijce, a jeśli nie napotka katastrofalnych błędów, wykona zawarte w nim komendy.
Zapamiętaj: Klasyczny sposób na uruchomienie skryptu to wpisanie w terminalu słowa 'python', spacji, a następnie poprawnej nazwy pliku i naciśnięcie Enter.
# Upewniamy się w terminalu, że znajdujemy się obok pliku powitanie.py
# Następnie wpisujemy i zatwierdzamy Enterem:
python powitanie.py

# Na ekranie pojawi się wyłącznie wygenerowany przez nas tekst:
Witaj, świecie! Jestem zapisany w pliku.
            
Terminal z uruchomieniem

Uruchamianie skryptu Pythonowego to proces, w którym interpreter odczytuje plik źródłowy i wykonuje zawarte w nim instrukcje linijka po linijce. Python jest językiem interpretowanym, co oznacza, że nie ma oddzielnego etapu kompilacji jak w przypadku C++ czy Javy. Kod jest tłumaczony na instrukcje maszynowe w momencie wykonania.

Sposób uruchamiania skryptu zależy od środowiska pracy. W VS Code wystarczy kliknąć ikonę "play". W terminalu używa się komendy `python nazwa_pliku.py`. Możliwe jest również nadanie plikowi atrybutu wykonywalnego w systemach Unix i uruchamianie go bezpośrednio po dodaniu shebanga na początku pliku.

20/50
Funkcja print()
  • Poznałeś już, jak utworzyć plik i jak kazać go uruchomić. Pora nauczyć się w nim pisać.
  • Najbardziej absolutnie podstawową funkcją w Pythonie, bez której ciężko wyobrazić sobie nawet najprostszy kod, jest `print()`.
  • Nazwa wywodzi się z czasów, gdy komputery nie miały ekranów i wyniki wyliczeń były fizycznie "drukowane" na papierze – stąd 'print'.
  • Dziś słowo to oznacza po prostu wyświetlenie, pokazanie danej informacji użytkownikowi w konsoli czy terminalu.
  • Budowa tej funkcji jest trywialna: wpisujemy słowo `print`, a następnie, zaraz obok, w okrągłych nawiasach podajemy, co chcemy pokazać światu.
  • To podstawowy kanał informacyjny. Program, w którym zaszłyby miliardy skomplikowanych obliczeń, bez użycia na koniec `print()` nie dałby w ogóle znaku życia na ekranie.
Zapamiętaj: Słowo print musi być w całości napisane małymi literami. Użycie Print() wywoła błąd!
# Prawidłowa składnia wywołująca wypisanie w konsoli:
print("Rozpoczęcie misji. Pasy zapięte.")

# Można wywoływać print() raz za razem:
print("Odliczanie...")
print("Start!")
            
Schemat print()

Funkcja print() jest podstawowym narzędziem komunikacji między programem a użytkownikiem w środowisku konsolowym. Pomimo swojej prostoty, print() posiada szereg parametrów umożliwiających precyzyjne kontrolowanie formatowania wyjścia. Jej nazwa pochodzi z czasów, gdy komputery komunikowały się z użytkownikiem za pomocą wydruków.

W Pythonie 3 print() stała się funkcją (w przeciwieństwie do Pythona 2, gdzie była instrukcją), co umożliwiło dodanie dodatkowych parametrów. Funkcja ta może przyjmować dowolną liczbę argumentów, a jej działanie można modyfikować za pomocą parametrów takich jak sep, end, file i flush. To czyni ją niezwykle elastycznym narzędziem.

21/50
print() z tekstem
  • Oprócz wykonywania poleceń, Python musi umieć odróżniać, które słowa są komendami do wykonania, a które są po prostu surowym tekstem dla użytkownika.
  • Taki zbiór liter, słów czy całych zdań nazywamy w programowaniu "łańcuchem znaków" (z ang. string).
  • Aby przekazać Pythonowi, że dany wyraz to tylko tekst i nie ma z nim nic robić, oprócz zapamiętania go, musimy użyć odpowiedniego opakowania.
  • Tym opakowaniem są znaki cudzysłowu `"` lub pojedyncze apostrofy `'`, którymi otaczamy tekst z obu stron.
  • Dla Pythona nie ma znaczenia, którego z tych dwóch symboli użyjesz – ważne jest to, aby zacząć i skończyć tekst tym samym znakiem.
  • Jeśli zapomnisz o "zamknięciu" cudzysłowu, kod nie zostanie wykonany, a terminal zwróci popularny błąd "SyntaxError".
# Zarówno pojedynczy cudzysłów (apostrof), jak i podwójny zadziałają identycznie:
print("To jest zwykły tekst otoczony cudzysłowem podwójnym.")
print('A to tekst otoczony apostrofami.')

# Przydaje się to, gdy chcemy użyć apostrofu wewnątrz samego tekstu:
print("It's a beautiful day!") # Apostrof ' w środku nie psuje tekstu
            
Wynik print()

Łańcuchy znaków (stringi) są jednym z najważniejszych typów danych w Pythonie. Służą do przechowywania i manipulowania tekstem. Python oferuje bogaty zestaw metod do pracy z tekstem, a funkcja print() potrafi wyświetlać stringi w różnych formatach. Cudzysłów pojedynczy i podwójny są traktowane zamiennie.

Wybór między cudzysłowem pojedynczym a podwójnym zależy od zawartości tekstu. Jeśli tekst zawiera apostrof, wygodniej jest użyć cudzysłowu podwójnego, i vice versa. Python 3 domyślnie używa kodowania UTF-8, co oznacza, że polskie znaki i inne znaki specjalne są obsługiwane bezproblemowo bez dodatkowej konfiguracji.

22/50
print() z liczbami
  • Funkcja `print()` jest niezwykle wszechstronna – potrafi wypisywać na ekranie nie tylko litery, ale również surowe liczby i wyniki działań.
  • Najważniejszą rzeczą, o której musisz pamiętać, to to, że surowych liczb matematycznych NIGDY nie otaczamy cudzysłowami.
  • Jeśli wpiszesz do środka działanie arytmetyczne (np. `2 + 2`), Python najpierw zachowa się jak kalkulator, a dopiero potem wypisze wynik (czyli `4`).
  • Jednakże, jeśli popełnisz błąd i zrobisz z równania matematycznego string (tekst) otaczając go cudzysłowami, kalkulator się nie włączy.
  • Python grzecznie wypisze dokładnie to, o co prosiłeś jako tekst: na ekranie zobaczysz znaki `2 + 2`.
  • Dlatego zawsze zwracaj uwagę, czy na pewno podajesz liczbę, a nie wyraz wyglądający jak liczba.
# Drukujemy liczbę 100 jako wartość matematyczną:
print(100)          # Wynik w terminalu: 100

# Zlecenie Pythonowi wyliczenia matematycznego:
print(2 + 2 * 10)   # Wynik w terminalu: 22

# A tutaj zablokowaliśmy obliczenia używając cudzysłowu (to teraz zwykły tekst):
print("2 + 2 * 10") # Wynik w terminalu: 2 + 2 * 10
            
Wynik z liczbami

Funkcja print() potrafi przyjmować różne typy danych jako argumenty. Liczby całkowite (int), zmiennoprzecinkowe (float) oraz wyniki wyrażeń arytmetycznych mogą być przekazywane bezpośrednio bez owijania w cudzysłowy. Python automatycznie konwertuje wartość liczbową na reprezentację tekstową przed wyświetleniem.

Rozróżnienie między tekstową reprezentacją liczby a jej wartością liczbową jest kluczowe dla zrozumienia działania Pythona. Gdy liczba jest zapisana bez cudzysłowu, Python traktuje ją jako wartość numeryczną i może na niej wykonywać operacje arytmetyczne. Gdy jest w cudzysłowie, staje się tekstem i każde użycie operatora + spowoduje konkatenację zamiast dodawania.

23/50
print() -- wiele argumentów
  • Zazwyczaj potrzebujemy wyświetlić w jednej linii kilka różnych rzeczy – np. tekst informacyjny połączony z wyliczoną liczbą.
  • Nie musimy do tego pisać wielokrotnie osobnych wywołań funkcji `print()`.
  • Ta przydatna komenda potrafi przyjąć dowolną, niemal nieograniczoną ilość elementów, czyli tzw. argumentów.
  • Jedynym wymogiem jest oddzielenie każdego z przekazywanych elementów zwykłym przecinkiem.
  • Gdy Python wyświetli te wielorakie argumenty na ekranie, bardzo grzecznie doklei między każdym z nich jedną spację.
  • Dzięki tej prostej sztuczce łączone zdania od razu stają się czytelne i unikamy sklejonego zbitka wyrazów.
# Oddzielamy tekst, liczbę matematyczną i kolejny tekst przecinkiem:
print("Mam już", 25, "lat, ale wciąż gram w gry.")
# Wynik w terminalu: Mam już 25 lat, ale wciąż gram w gry.

# Programiści często mieszają też różne typy danych w ten sposób:
print("Wynik skomplikowanego równania to:", 100 / 4)
# Wynik w terminalu: Wynik skomplikowanego równania to: 25.0
            
Schemat argumentów

Możliwość przekazywania wielu argumentów do funkcji print() jest jednym z jej najprzydatniejszych udogodnień. Pozwala to na łączenie różnych typów danych w jednym wywołaniu, co czyni kod czytelniejszym i bardziej zwięzłym. Python automatycznie dodaje spacje między kolejnymi argumentami.

Liczba argumentów przekazywanych do print() jest praktycznie nieograniczona, co pozwala na konstruowanie złożonych komunikatów. Warto jednak pamiętać, że nadmierna liczba argumentów może pogorszyć czytelność kodu. W takich przypadkach lepiej użyć formatowania stringów lub operatora konkatenacji dla lepszej widoczności struktury komunikatu.

24/50
Parametr sep
  • W poprzednim kroku dowiedziałeś się, że przecinek automatycznie dodaje pustą spację podczas wypisywania na ekranie.
  • Choć najczęściej jest to wysoce pożądane, czasem chcemy złączyć wyrazy za pomocą innego znaku (np. myślnika lub spójnika).
  • Służy do tego wbudowany w `print()` parametr opcjonalny o nazwie `sep` (skrót od angielskiego 'separator').
  • Podając na samym końcu nawiasu zapis `sep="coś"`, podmieniasz domyślną spację na podany przez Ciebie znak czy tekst.
  • Możesz podać myślnik, długi napis " ORAZ ", a nawet całkowitą pustkę `""` – co spowoduje twarde sklejenie argumentów bez żadnej przerwy.
  • Zwróć uwagę, że parametr separatora w ogóle nie pokaże się na ekranie na samym końcu – jest on wstawiany *tylko pomiędzy* wymienione obiekty.
# Zmieniamy domyślną spację na myślnik:
print("jablko", "banan", "kiwi", sep="-")
# Wynik: jablko-banan-kiwi

# Użycie pustego tekstu (żadnej spacji) skutecznie skleja argumenty:
print("M", "A", "C", "I", "E", "K", sep="")
# Wynik: MACIEK
            
Porównanie sep

Parametr sep (separator) daje programiście kontrolę nad znakiem rozdzielającym kolejne argumenty w wywołaniu print(). Domyślnie jest to spacja, ale można go zmienić na dowolny ciąg znaków. Jest to szczególnie przydatne przy generowaniu danych w formatach takich jak CSV.

Parametr sep jest przykładem parametru nazwanego (keyword argument). W Pythonie parametry nazwane pozwalają na czytelne przekazywanie opcji do funkcji bez konieczności zapamiętywania ich pozycji. Użycie sep="" (pusty string) powoduje sklejenie argumentów bez żadnego separatora, co jest przydatne przy konstruowaniu pojedynczych wyrazów.

25/50
Parametr end
  • Zauważyłeś na pewno, że każde kolejne napisanie komendy `print()` powoduje, że wyraz ląduje linijkę niżej w terminalu.
  • To drugie domyślne, z góry zaprogramowane zachowanie – `print()` zawsze naciska niewidzialny 'Enter' na sam koniec swojej pracy.
  • Tę niewidoczną nową linię także można łatwo nadpisać za pomocą kolejnego parametru, noszącego jasną nazwę `end` (koniec).
  • Zastępując domyślnego 'Entera' np. spacją (`end=" "`), sprawisz, że kolejny `print()` w kodzie zacznie pisać wciąż w tej samej linijce!
  • Jest to bardzo przydatne, np. w systemach pobierających paski postępu – napis "10%" drukuje się bez enterów, dzięki czemu aplikacja nie zasypuje konsoli nowymi liniami.
  • Parametr ten, podobnie jak `sep`, należy zawsze dopisywać na samym końcu, po podaniu wszystkich rzeczy do drukowania.
# Zastępujemy Enter trzema kropkami i spacją:
print("Trwa ładowanie", end="... ")

# Poniższy print zostanie "doklejony" w starej linii!
print("Gotowe! System uruchomiony.")

# Wygląd całego rezultatu w terminalu:
# Trwa ładowanie... Gotowe! System uruchomiony.
            
Porównanie end

Parametr end kontroluje, co funkcja print() wypisuje po przetworzeniu wszystkich argumentów. Domyślną wartością jest znak nowej linii (\n), ale można go zmienić na dowolny inny ciąg znaków. To pozwala na kontrolowanie przepływu tekstu między kolejnymi wywołaniami print().

Zastąpienie domyślnego znaku nowej linii innym znakiem ma praktyczne zastosowania. W paskach postępu end="" pozwala nadpisywać tę samą linię. Przy budowaniu tekstu akapitowego end=" " może tworzyć płynniejszy przepływ. Parametr ten jest często używany w połączeniu z sep dla uzyskania pełnej kontroli nad formatowaniem.

26/50
Znaki specjalne
  • Podczas tworzenia długich tekstów w cudzysłowach, często chcemy sztucznie przenieść część zdania do nowej linii.
  • Jeśli w połowie cudzysłowu naciśniesz klawisz Enter na klawiaturze, edytor zepsuje kod, nie rozumiejąc o co chodzi i wyrzuci SyntaxError.
  • Dlatego w programowaniu wdrożono ideę 'znaków specjalnych', powoływanych do życia potężnym ukośnikiem wstecznym, czyli tzw. Backslashem `\`.
  • Połączenie ukośnika wstecznego i litery 'n' (`\n` – od 'new line') wewnątrz tekstu podziała na konsolę jak fizyczne naciśnięcie entera!
  • Analogicznie, zapisanie `\t` nie wypisze litery 't', lecz wstawi obszerne, eleganckie wcięcie, czyli popularną Tabulację.
  • Dzięki temu możesz tworzyć zgrabnie ułożone menu czy cenniki używając tylko jednej funkcji `print()`.
Zapamiętaj: Backslash (\) uwalnia ukryte 'magiczne' moce literki, z którą jest połączony, ignorując jej drukowanie.
# Użycie \n (Enter) do oddzielenia linii:
print("Pierwsza Linia\nDruga Linia z nowej kartki")
# Wynik: 
# Pierwsza Linia
# Druga Linia z nowej kartki

# Użycie \t (Tabulacja) dla estetycznych odstępów:
print("Imię\tNazwisko\tWiek")
print("Jan\tKowalski\t35")
            
Tabela znaków specjalnych

Znaki specjalne w Pythonie poprzedzone backslashem (\) pozwalają na reprezentację znaków, które trudno lub nie można wpisać bezpośrednio w kodzie. Najczęściej używane to \n (nowa linia), \t (tabulacja), \\ (backslash) oraz \" (cudzysłów wewnątrz stringa). To potężne narzędzie do precyzyjnego formatowania tekstu.

Warto pamiętać, że znaki specjalne działają tylko wewnątrz stringów. Poza stringami backslash nie ma specjalnego znaczenia. W przypadku potrzeby wyłączenia interpretacji znaków specjalnych można użyć surowych stringów, poprzedzając string literą r, np. r"ścieżka\do\pliku".

27/50
Tekst wieloliniowy
  • Znak `\n` sprawdza się doskonale przy krótkich wiadomościach, lecz potrafi strasznie zabałaganić długi tekst składający się z wielu zdań.
  • Wyobraź sobie, że piszesz do kogoś w terminalu wirtualny list lub rozbudowaną instrukcję obsługi – wszechobecne ukośniki doprowadziłyby do zawrotów głowy.
  • Python udostępnia doskonałą alternatywę w postaci bloku ograniczonego POTRÓJNYM znakiem cudzysłowu `"""` na początku i końcu.
  • Pomiędzy takimi barierami znika zakaz naciskania fizycznego Entera w edytorze kodu.
  • Każde przejście do nowej linii czy każda twarda spacja zostanie natychmiast zapamiętana przez wbudowanego w Pythona menedżera tekstu.
  • Program wydrukuje taki tekst idealnie w ten sam format, w jaki ułożyłeś go ręcznie na ekranie – to potężne ułatwienie dla twórców menu z opcjami.
# Zwróć uwagę na otwarcia i zamknięcia bloków: """
print("""=============
MENU GŁÓWNE
=============

1. Rozpocznij nową grę
2. Załaduj stan zapisu
3. Opcje
4. Wyjście do pulpitu""")

# Kod zadziała wyśmienicie bez ani jednego znaczka \n !
            
Przykład wieloliniowy

Potrójne cudzysłowy (""" """) to eleganckie rozwiązanie problemu długich, wieloliniowych tekstów w Pythonie. Pozwalają one na naturalne formatowanie tekstu z zachowaniem podziału na linie, bez konieczności używania znaków \n. Jest to szczególnie przydatne przy tworzeniu dokumentacji, komunikatów powitalnych czy menu tekstowych.

Potrójne cudzysłowy spełniają także dodatkową funkcję – są używane do tworzenia docstringów, czyli dokumentacji wbudowanej w kod. Każda funkcja, klasa czy moduł powinien zawierać docstring opisujący jej działanie. Python umożliwia odczytanie tych docstringów za pomocą narzędzi takich jak help().

28/50
Łączenie tekstów (+)
  • Wiemy już, jak matematycznie dodać dwie liczby znakiem plus, tak by `2 + 2` dało `4`.
  • Jednak w Pythonie znak plus `+` ma podwójne życie! Jeśli użyjesz go między dwoma tekstami (stringami), zadziała w zupełnie inny sposób.
  • Spowoduje on twarde zlejenie dwóch tekstów w jeden nierozerwalny fragment. W słowniku informatycznym nazywamy to trudnym słowem 'konkatenacja'.
  • W przeciwieństwie do drukowania elementów po przecinku, nie wstawia z automatu żadnej ukrytej spacji!
  • Jeśli chcesz uniknąć sklejonego potworka wyrazowego, musisz o spacji pamiętać samodzielnie, umieszczając ją np. wewnątrz cudzysłowu na końcu pierwszego słowa.
  • Konkatenacja to fundament tworzenia spersonalizowanych komunikatów aplikacji opartych na interakcji użytkownika.
# Doklejamy brutalnie jeden tekst do drugiego - bez przerw:
print("Spider" + "man")
# Wynik: Spiderman

# Doklejamy, ale dbamy o rzucenie spacji w jednym z kawałków:
print("Pani" + " Ewo") # Oraz alternatywa: "Pani " + "Ewo"
# Wynik: Pani Ewo

# Można w ten sposób połączyć całe góry tekstów!
print("Panie" + " i " + "Panowie" + " - witamy!")
            
Schemat łączenia

Operator + służy w Pythonie nie tylko do dodawania liczb, ale także do łączenia (konkatenacji) stringów. To przeciążanie operatorów jest cechą charakterystyczną Pythona – ten sam operator może wykonywać różne operacje w zależności od typu danych. Konkatenacja tworzy nowy obiekt tekstowy będący połączeniem oryginalnych stringów.

Ważne jest zrozumienie różnicy między konkatenacją a przekazywaniem wielu argumentów do funkcji print(). Konkatenacja łączy tekst w jedną całość przed przekazaniem do funkcji, podczas gdy print() z wieloma argumentami przyjmuje kilka osobnych obiektów i dodaje między nimi separator.

29/50
Powtarzanie tekstów (*)
  • Skoro w Pythonie teksty można dodawać, logicznym krokiem naprzód wydaje się sprawdzenie operacji matematycznego mnożenia, prawda?
  • Użycie matematycznej gwiazdki `*` na ciągu znaków (string) nie uszkodzi komputera, tylko wykona bardzo fajną sztuczkę.
  • Przemnożenie tekstu przez całkowitą liczbę (np. 5) wygeneruje tekst kilkukrotnie w powtarzalny i błyskawiczny sposób.
  • Język ten wypluje dosłownie powielone wyrazy bezpośrednio, bez jakichkolwiek uciążliwych spacji sklejając je twardo w jedno ciało.
  • Metoda ta bywa niezwykle często używana przez weteranów do graficznego oddzielania w terminalu różnych fragmentów, np. linii na 50 znaków.
  • Dzięki temu zyskujemy potężne oszczędności pamięci i czasu w niepotrzebnym uderzaniu w klawisze.
# Trzykrotne zaśmianie - Python robi za Ciebie powielenie:
print("Ha" * 3)
# Wynik: HaHaHa

# Błyskawiczne i eleganckie oddzielenie fragmentów kreską:
print("=" * 40)
# Wynik: ========================================
            
Przykład powtarzania

Operator * zastosowany do stringa i liczby całkowitej powoduje powielenie tekstu. Jest to niezwykle przydatna sztuczka, która pozwala na generowanie powtarzalnych wzorców bez konieczności pisania pętli. Python tworzy nowy obiekt string, który jest oryginalnym tekstem powtórzonym określoną liczbę razy.

Powtarzanie tekstów znajduje praktyczne zastosowanie w wielu scenariuszach: tworzenie separatorów, generowanie prostych wykresów tekstowych, formatowanie tabel czy symulacja animacji w konsoli. Jest to również dobry przykład zasady DRY (Don't Repeat Yourself) w działaniu.

30/50
Komentarze jednoliniowe
  • Pisanie kodu bywa rzeczą niezwykle skomplikowaną. By samemu pamiętać co i po co zostało zrobione, zostawiamy w nim 'żółte karteczki'.
  • Te wirtualne karteczki to tzw. komentarze – przypisy zostawione ściśle dla innych ludzi do przeczytania.
  • W Pythonie, aby utworzyć komentarz, wystarczy przed tekstem napisać symbol ostrej kratki – `#` (ang. hash).
  • Gdy interpreter natknie się w trakcie 'czytania' kodu na znak hasztagu, udaje, że nagle ogłuchł i ignoruje wszystko do końca obecnej linii.
  • Komentarze chronią ludzki pot przed zapomnieniem i ułatwiają wprowadzanie nowicjuszy do skomplikowanych projektów informatycznych.
  • Jedna stara, złota maksyma brzmi: Kod mówi Ci *jak* to zostało wyliczone. Komentarz powinien mówić Ci *dlaczego* w ogóle to zrobiliśmy.
Zapamiętaj: Komentarze są wyłącznie dla ludzi. Komputer je omija, nie powodują błędów ani spadków wydajności oprogramowania.
# Ten tekst jest absolutnie niewidzialny dla silnika Pythona.

print("Skrypt działa!") # Komentarze można pisać od połowy linii!

# Złota reguła dobrego programisty: nie pisz komentarzy, jeśli coś jest oczywiste.
# (np. ZŁY KOMENTARZ: "teraz używam print by napisać coś w konsoli")
            
Kod z komentarzami

Komentarze są nieodłącznym elementem profesjonalnego kodu, choć ich rola bywa często błędnie rozumiana przez początkujących programistów. Komentarz to notatka dla programisty, która jest całkowicie ignorowana przez interpreter Pythona. Znak # rozpoczyna komentarz trwający do końca linii.

Dobry komentarz odpowiada na pytanie "dlaczego?", a nie "jak?". Kod sam w sobie powinien wyjaśniać, jak działa. Komentarz natomiast powinien tłumaczyć, dlaczego przyjęto takie, a nie inne rozwiązanie. Przekomentowanie kodu jest równie szkodliwe jak jego brak, ponieważ utrudnia czytanie i utrzymanie.

31/50
Komentarze wieloliniowe
  • Znak ostrej kratki `#` pozwala skomentować tylko i wyłącznie pojedynczą linijkę tekstu.
  • Gdy naciśniesz Enter, w nowej linii interpreter ponownie zacznie nasłuchiwać i wymagać pełnoprawnego, działającego kodu.
  • Wielu programistów chcąc ukryć przed komputerem ogromny blok tekstowy po prostu wstawia uparcie znaczek `#` przed każdą nową linią.
  • Z pomocą przychodzi jednak znany nam już wieloliniowy napis otoczony barierami z potrójnego cudzysłowu `"""`.
  • Zasada działania opiera się na sztuczce: jeśli wygenerujesz bardzo długi string tekstowy w kodzie, ale nie obejmiesz go poleceniem `print()`, co się stanie?
  • Python grzecznie, zgodnie z poleceniem przeczyta dany tekst i połamie w nim wiersze... po czym natychmiast wrzuci do kosza (zapomni) bez wpływu na program, czyniąc z niego ogromny komentarz!
# Tradycyjny i najczęstszy sposób komentowania w kilku liniach:
# Wymaga wstawiania hasztagu przed każdym nowym zdaniem.
# Jest to męczące, ale w pełni zgodne ze sztuką.

"""
Natomiast tutaj wykorzystaliśmy trik z potrójnym cudzysłowem!
Ponieważ nie ma tu polecenia wydruku (print), ten tekst nigdy 
nie ujrzy światła dziennego. Zostanie przeczytany i zignorowany.
Dzięki temu funkcjonuje de facto jako komentarz wieloliniowy.
"""
            
Porównanie komentarzy

Python nie ma wbudowanej składni do blokowych komentarzy, w przeciwieństwie do C++ czy Javy z ich /* */. Zamiast tego programiści używają dwóch technik: wielokrotnego # w każdej linii lub potrójnych cudzysłowów tworzących string, który nie jest nigdzie przypisany. Ta druga technika jest często nazywana "komentarzem blokowym".

Należy zachować ostrożność przy używaniu potrójnych cudzysłowów jako komentarzy. Jeśli taki blok znajdzie się bezpośrednio po definicji funkcji lub klasy, stanie się docstringiem. Narzędzia takie jak lintery i IDE mogą traktować go jako dokumentację, a nie komentarz. Do tymczasowego wyłączania kodu zaleca się używanie pojedynczych #.

32/50
Po co komentować kod
  • Ucząc się na prostych przykładach nie dostrzega się ogromnej siły płynącej z mądrego opisywania kodu komentarzami.
  • Zrozum jednak perspektywę pracownika wielkiej firmy tworzącej program oparty na stu tysiącach skomplikowanych linijek tekstu.
  • Komentarz jest wtedy na wagę złota, stanowi swego rodzaju mapę po umyśle programisty, który stworzył dany moduł np. rok wcześniej.
  • Istnieje tu jednak bardzo ciemna strona mocy: nadmierne, potężne komentowanie każdej jednej głupiej rzeczy prowadzi do nieczytelności.
  • Należy bezwzględnie unikać powtarzania tego, co widać gołym okiem. Komentarz `# drukuje wynik` nad linijką `print(wynik)` to błąd w sztuce nazywany 'spamowaniem kodu'.
  • Dobry kod powinien w dużej mierze czytać się sam, jak książka. Komentarz powinien wyjaśniać zawiłości i nieoczekiwane zmiany w logice biznesowej.
Zapamiętaj: Dobry kod z założenia tłumaczy się sam. Komentarze to tylko niezbędne wsparcie wyjaśniające zawiłe matematyczne intencje autora.
Kod z vs bez komentarzy

Uzasadnienie potrzeby komentowania kodu wykracza poza kwestie czysto techniczne. W środowisku korporacyjnym kod jest aktywem firmy, który będzie utrzymywany i rozwijany przez lata, często przez różnych programistów. Dobrze skomentowany kod znacząco redukuje czas wdrożenia nowego członka zespołu.

W praktyce inżynierskiej przyjęło się, że komentarze powinny wyjaśniać: skomplikowane algorytmy, niestandardowe decyzje projektowe, znane ograniczenia (TODO/FIXME) oraz odniesienia do zewnętrznej dokumentacji. Komentarze nie powinny opisywać tego, co jest oczywiste z kodu, ani powtarzać nazw funkcji i zmiennych.

33/50
SyntaxError
  • Prędzej czy później – a najpewniej w przeciągu pierwszej godziny nauki – terminal eksploduje dużą ilością czerwonego, brzydkiego tekstu.
  • Taki widok to powiadomienie o błędzie. Oznacza on absolutne zatrzymanie działania oprogramowania.
  • Jednym z najbardziej fundamentalnych potknięć jest słynny `SyntaxError`, czyli w tłumaczeniu na polski: Błąd Składniowy.
  • Pojawia się on zawsze, gdy napiszesz coś niezgodnego z twardym słownikiem języka (tzw. byki ortograficzne).
  • Do typowych winowajców należą: niedomknięte cudzysłowy (np. `print("Aha)`), zgubione nawiasy czy pozostawienie całkowicie losowych literek w kodzie.
  • Python przed wykonaniem kodu po cichu skanuje cały plik – jeśli znajdzie błąd składni, zablokuje program zanim ten chociażby spróbuje wystartować.
# Częsty błąd początkujących: zapomniano zamknąć twardy cudzysłów:
print("Brak zamknięcia

# Python zaprotestuje komunikatem z serii: 
# SyntaxError: unterminated string literal

# Oznacza to "Błąd składni: niezakończony literowo łańcuch znaków".
            
Przykład SyntaxError

SyntaxError jest najczęściej występującym błędem wśród początkujących programistów. Pojawia się, gdy kod narusza reguły gramatyczne języka Python. Komunikat błędu zawsze zawiera informacje o lokalizacji problemu (numer linii) oraz strzałkę (^) wskazującą konkretne miejsce, gdzie interpreter stracił zdolność parsowania kodu.

Najczęstsze przyczyny SyntaxError to: brak domknięcia nawiasu, cudzysłowu lub innego ogranicznika; nieprawidłowa składnia; zapomnienie dwukropka po instrukcjach takich jak if, for, while; nieprawidłowe wcięcia; oraz użycie operatorów w nieprawidłowym kontekście. Każdy SyntaxError to informacja zwrotna od interpretera.

34/50
NameError
  • Tuż obok błędów językowych często ujrzysz na swojej drodze potknięcie z rodziny `NameError` (Błąd Nazwy).
  • Błąd ten pojawia się w momencie, gdy z punktu widzenia gramatyki Twoje kropki i przecinki są idealne, ale używasz słów nieistniejących w słowniku Pythona.
  • Pomyśl o nim jak o wypowiedzeniu do psa komendy "Aport!", podczas gdy ten nauczony jest reagować tylko na "Przynieś!". Pies zgłupieje.
  • Dość typową pomyłką jest zrobienie drobnej literówki w kluczowych funkcjach, np. napisanie `prnit()` zamiast `print()`.
  • Interpreter Pythona zacznie desperacko przeszukiwać swoje czeluści w poszukiwaniu komendy "prnit", po czym kapitulując wyświetli `NameError`.
  • Na całe szczęście, nowoczesny Python jest na tyle inteligentny, że przy niewielkich literówkach w funkcji `print` sam zasugeruje, gdzie się pomyliłeś!
# Klasyczna pomyłka klawiaturowa w pośpiechu (zjedzono literkę 'i'):
prnt("O rany, literówka!")

# Python skapituluje po tej komendzie rzucając komunikatem:
# NameError: name 'prnt' is not defined. Did you mean: 'print'?

# Interpreter poinformował nas o braku definicji "prnt",
# jednocześnie pytając z uśmiechem: "Czy chodziło Ci o 'print'?"
            
Przykład NameError

NameError pojawia się, gdy Python napotka nazwę (identyfikator), której nie rozpoznaje. Może to być wynik literówki w nazwie funkcji, zmiennej lub modułu. Python 3.10+ oferuje pomocne sugestie w komunikatach błędów, proponując podobne nazwy, które mogą być tym, co programista zamierzał napisać.

NameError jest naturalnym elementem procesu nauki i debugowania. Ważne jest, aby nauczyć się czytać te komunikaty: mówią one dokładnie, jaką nazwą nie została zdefiniowana i w której linii. Często wystarczy spojrzeć na poprzedzające linie kodu, aby znaleźć literówkę lub brakującą definicję.

35/50
Czytanie komunikatów o błędach
  • Zobaczenie krwisto-czerwonych napisów u nowicjuszy często wywołuje przerażenie i chęć natychmiastowego wyłączenia aplikacji. Nic bardziej mylnego!
  • Błędy w terminalu to nie są oznaki zniszczonego komputera, to bardzo pomocne i niezwykle precyzyjne wskazówki od samego serca języka.
  • Naucz się je z uwagą czytać. Najważniejsze informacje zawsze znajdują się na samym dole tego czerwonego stosu.
  • W ostatniej linijce zawsze podany jest typ dolegliwości, np. omawiany wcześniej `SyntaxError`.
  • Natomiast linijkę wyżej uśmiechnie się do Ciebie informacja `line X` wskazująca jak na dłoni, w której linii pliku skrywa się morderca programu.
  • Python na tyle lubi pomagać, że często dorzuca mały daszek `^` precyzyjnie celujący w literkę powodującą cały kłopot.
Zapamiętaj: Prawdziwym kluczem do sukcesu nie jest pisanie programów bez błędów (to niemożliwe), lecz bezwzględna umiejętność odczytywania podpowiedzi z błędów.
# Terminal wyświetla m.in. takie pomocne wskazówki (np. plik z błędem w 2. linii):

File "moj_skrypt.py", line 2
    print("Brak nawiasu"
         ^
SyntaxError: unexpected EOF while parsing

# Interpreter poinformował o nieoczekiwanym końcu pliku (EOF - End Of File).
            
Anatomia komunikatu

Umiejętność czytania komunikatów błędów jest jedną z najważniejszych cech dobrego programisty. Python słynie z przyjaznych i szczegółowych komunikatów błędów, które precyzyjnie wskazują problem. Zamiast panikować na widok czerwonego tekstu, należy spokojnie przeanalizować informacje zawarte w tracebacku.

Traceback zawiera: typ błędu, opis błędu, numer linii i plik, w którym wystąpił błąd oraz często fragment kodu z oznaczeniem problematycznego miejsca. Najważniejsza informacja znajduje się na samym dole – to typ błędu i jego opis. Linie powyżej pokazują kontekst i historię wywołań.

36/50
Dobre nawyki
  • Wielu frustrujących awarii na początku nauki nie powoduje kod sam w sobie, lecz błędne przygotowanie otoczenia roboczego przez użytkownika.
  • Pierwszą złotą zasadą jest używanie wyłącznie angielskiego alfabetu bez polskich ogonków (ł,ś,ć) w absolutnie każdej nazwie (plików, folderów, programów).
  • Kolejnym powszechnym grzechem jest wrzucanie spacji do nazw plików – zamiast tego używaj znaków podkreślenia np. `moj_kod.py`.
  • Największą irytację wśród młodych kursantów powoduje jednak uruchamianie kodu, w którym... nie widać wprowadzonych przed sekundą zmian!
  • Wynika to z faktu uruchamiania w terminalu pliku bezpośrednio z dysku, w momencie gdy nowe zmiany "wiszą" jeszcze niezapisane w obłoku pamięci edytora.
  • Aby oszczędzić sobie wielu godzin zastanawiania się "dlaczego to nie działa, skoro poprawiłem?", wyrób w sobie mocny nawyk naciskania Ctrl+S.
Zapamiętaj: Odruch nerwowego klikania skrótu Zapisz Plik (Ctrl+S lub Cmd+S) to drugie imię każdego programisty na Ziemi.
Lista nawyków

Dobre nawyki programistyczne to nie luksus, a konieczność w profesjonalnym tworzeniu oprogramowania. Należą do nich między innymi: regularne zapisywanie pracy (Ctrl+S), używanie angielskich nazw bez polskich znaków, unikanie spacji w nazwach plików oraz regularne testowanie napisanego kodu.

Jednym z najczęstszych błędów początkujących jest zapominanie o zapisaniu pliku przed uruchomieniem. Edytor i interpreter to dwa osobne programy – zmiany w edytorze nie są automatycznie widoczne dla interpretera, dopóki plik nie zostanie zapisany. Wypracowanie odruchu częstego zapisywania to kluczowy nawyk.

37/50
Wcięcia w Pythonie
  • Języki takie jak popularne C++ czy Java wykorzystują tzw. nawiasy klamrowe `{}` do grupowania w nich całych rodzin poleceń.
  • Python charakteryzuje się tu bardzo unikalnym, rygorystycznym podejściem: w ogóle nie używa nawiasów klamrowych do tego celu!
  • Zamiast nich, używa obowiązkowych, restrykcyjnych "wcięć" w kodzie wygenerowanych przy pomocy Spacji lub klawisza Tabulator (Tab).
  • Jeśli dany fragment kodu znajduje się pod warunkiem i ma należeć do niego hierarchicznie, MUSI być przesunięty w prawo (zazwyczaj o standardowe 4 spacje).
  • Ten mechanizm zmusza każdego programistę do pięknego formatowania tekstów i utrzymania kodu w ekstremalnie czytelnej formie.
  • Jednakże postawienie spacji za mało lub za dużo, choćby o jedną, bez powodu zakończy się nagłym wstrzymaniem programu przez `IndentationError`.
Zapamiętaj: Mieszanie znaków Tabulacji i Spacji powoduje koszmarne problemy. W edytorach włącz opcję "zamieniaj Taby na 4 spacje".
# Przykładowy poprawny kod z zachowanym wcięciem dla warunku 'jeśli' (if):
if 10 > 5:
    print("Liczba 10 jest większa!")

# Przykład potężnego błędu blokującego uruchomienie (IndentationError):
if 10 > 5:
print("Ten brak ułożenia wyrzuci potężny błąd!")
            
Porównanie wcięć

Wcięcia w Pythonie nie są opcjonalne – są integralną częścią składni języka. Podczas gdy inne języki używają nawiasów klamrowych do grupowania bloków kodu, Python używa wcięć. To rozwiązanie wymusza pisanie czytelnego kodu, ale bywa źródłem frustracji przy mieszaniu spacji z tabulatorami.

Standard PEP-8 zaleca używanie 4 spacji na każdy poziom wcięcia. Wszystkie nowoczesne edytory kodu można skonfigurować tak, aby automatycznie zamieniały tabulatory na spacje. Należy bezwzględnie unikać mieszania obu znaków w jednym pliku, ponieważ może to prowadzić do trudnych do wykrycia błędów IndentationError.

38/50
Wielkość liter
  • Na co dzień wyszukując hasła w Internecie pewnie nie używasz klawisza SHIFT. Pisząc "Paryż" czy "paryż" znajdziesz miasto we Francji.
  • Kompilatory programistyczne, w tym środowisko Pythona, są jednak całkowicie wrażliwe na wielkość liter.
  • Mówimy o nim, że jest systemem wrażliwym na wielkość znaków (z j. angielskiego `case-sensitive`).
  • Z punktu widzenia interpretera wyraz "PRINT" ma całkowicie inne znaczenie niż polecenie do konsoli "print" – to dla niego dwa różne gatunki.
  • Niemal wszystkie podstawowe słowa-klucze sterujące językiem są zdefiniowane ściśle z wykorzystaniem wyłącznie małych liter.
  • Próba wciśnięcia funkcji napisanej np. z Dużej Litery, np. dlatego że masz wciśnięty klawisz Caps-Lock, zostanie skwitowana znanym błędem NameError.
# Wywołanie prawidłowej wersji, która dokona wypisania liter na ekranie:
print("Operacja zakończona sukcesem.")

# Wersje ze zmienioną wielkością wygenerują fatalny błąd braku nazwy (NameError):
# Print("Wcale nie wydrukuję, bo P jest za duże!")
# PRINT("Ja tym bardziej, tu nic się nie zgadza...")
            
Przykłady błędów

Python jest językiem case-sensitive, co oznacza, że wielkość liter ma znaczenie. Dla interpretera Pythona nazwy "print", "Print" i "PRINT" to trzy różne identyfikatory. Ta cecha jest wspólna dla większości nowoczesnych języków programowania i ma na celu zwiększenie pojemności informacyjnej identyfikatorów.

Konsekwencją case-sensitivity jest konieczność zachowania spójności w nazewnictwie. Konwencja PEP-8 zaleca używanie małych liter z podkreśleniami (snake_case) dla nazw zmiennych i funkcji. Klasy pisze się w PascalCase, a stałe w UPPER_CASE, co ułatwia odróżnienie typów identyfikatorów.

39/50
Dokumentacja Pythona
  • Największym mitem w branży jest myślenie, że bycie programistą to recytowanie komend bez wahania z pamięci niczym tabliczki mnożenia.
  • Środowisko to ewoluuje każdego dnia, a komend i modułów jest tyle, że ich poznanie na pamięć wymagałoby wiedzy dziesięciu uniwersytetów.
  • Prawdziwy talent to nie pamięć fotograficzna do znaków, lecz potężna zdolność odnajdywania, filtrowania i implementowania poszukiwanych informacji.
  • Świętym Grallem programisty i miejscem pierwszego kontaktu jest oficjalna dokumentacja. Dla omawianego języka jest to serwis `docs.python.org`.
  • Działająca niczym gigantyczna Wikipedia instrukcja obsługi, bardzo merytorycznie i bez zbytecznych opowieści opisuje co robi i jak się zachowuje dana funkcja.
  • Gdybyś nie znalazł tam ratunku na potężny błąd aplikacji, pomocą w programowaniu służą od dekad fora takie jak "StackOverflow".
Strona dokumentacji

Oficjalna dokumentacja Pythona (docs.python.org) jest kompleksowym źródłem wiedzy o języku. Zawiera tutoriale, referencje bibliotek standardowych, poradniki instalacyjne oraz szczegółowe opisy każdej funkcji i modułu. Dokumentacja jest utrzymywana przez Python Software Foundation i regularnie aktualizowana.

Umiejętność korzystania z dokumentacji jest ważniejsza niż zapamiętywanie składni na pamięć. Profesjonalni programiści stale korzystają z dokumentacji, sprawdzając parametry funkcji, przykłady użycia i informacje o wersjach. Dobrą praktyką jest również korzystanie z forów takich jak Stack Overflow.

40/50
Funkcja help()
  • Zanim na dobre ugrzęźniesz w internetowych gąszczach i forach zadając setki trywialnych pytań, warto dać szansę encyklopedii.
  • Okazuje się, że rdzenny Python ma wewnątrz siebie zbudowaną skrótową wersję internetowej dokumentacji w wersji terminalowej!
  • Służy do tego potężna (a jednocześnie rzadko znana młodym koderom) wbudowana komenda "pomocy" – urocza funkcja `help()`.
  • Po wejściu do trybu REPL, po znakach `>>>` możesz wpisać komendę podając w jej nawiasie nazwę jakiejkolwiek funkcji – tej domyślnej lub cudzej.
  • Konsola błyskawicznie powróci do Ciebie z obszernym wyjaśnieniem tego do czego dana funkcja służy, pokazując też listę skomplikowanych opcji jak `sep` i `end`.
  • Dzięki temu zyskujesz czas unikając wyjścia z notatnika do okna domyślnej przeglądarki internetowej.
# Wywołujemy wezwanie o pomoc dla funkcji wypluwającej treść:
>>> help(print)

# Python wywiesza do wglądu oficjalną ściągawkę terminalową:
# Help on built-in function print in module builtins:
# print(...)
#     print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
#     Prints the values to a stream, or to sys.stdout by default.
            
Wynik help()

Funkcja help() jest wbudowanym narzędziem Pythona do uzyskiwania pomocy bezpośrednio z poziomu interpretera. Po wywołaniu help(print) Python wyświetla szczegółową dokumentację funkcji print, włączając listę parametrów, opis działania i informacje o typie zwracanym.

Funkcja help() działa na zasadzie odczytu docstringów, czyli dokumentacji wbudowanej w kod źródłowy. Każdy dobrze napisany moduł, klasa czy funkcja w Pythonie zawiera docstring wyjaśniający jej przeznaczenie. Dzięki temu programiści mogą uzyskać pomoc bez wychodzenia z terminala.

41/50
Słowa kluczowe
  • Język polski liczy ponad sto tysięcy słów. Słownik Pythona jest ekstremalnie mały, zawiera w sobie jedynie 35 zarezerwowanych słów kluczowych (keywords).
  • Te magiczne słowa stanowią absolutny fundament architektury języka i dyktują komputerowi jak ma się zachować (np. słowa `if`, `for`, `and`, `True`).
  • Mówimy, że są to słowa "zarezerwowane" – oznacza to, że programista pod żadnym pozorem nie ma prawa ich nadpisywać.
  • Nie możesz stworzyć np. swojej własnej gry czy aplikacji i nazwać jej wewnątrz kodu słowem `import` czy `def`. Zostaniesz zatrzymany przez SyntaxError.
  • Dobrą wiadomością jest to, że nie musisz uczyć się ich na pamięć. Każde profesjonalne IDE, w tym VS Code, natychmiast podkreśli zarezerwowane słowo innym kolorem.
  • Jeśli w trakcie pisania nazwy Twoje słowo nagle zaświeci się na niebiesko lub fioletowo – wiedz, że musisz wymyślić inną nazwę.
Zapamiętaj: Słowa kluczowe (keywords) to świętość. Stanowią one szkielet gramatyczny Pythona i nie wolno ich używać w innym celu.
# Wywołanie wewnętrznej, zaimplementowanej biblioteki 'keyword':
import keyword

# Możemy łatwo podejrzeć i upewnić się co do listy wszystkich słów:
print(keyword.kwlist)

# Wynik w terminalu:
# ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
            
Tabela słów kluczowych

Słowa kluczowe (keywords) to zarezerwowane identyfikatory, które mają specjalne znaczenie w składni Pythona. Nie można ich używać jako nazw zmiennych, funkcji czy klas. Lista słów kluczowych ewoluuje wraz z wersjami Pythona – na przykład Python 3.5 dodał "async" i "await".

Znajomość słów kluczowych pomaga uniknąć błędów składniowych i lepiej zrozumieć strukturę języka. W VS Code słowa kluczowe są automatycznie podświetlane na charakterystyczny kolor. Listę wszystkich słów kluczowych można wyświetlić w REPL za pomocą importu modułu keyword.

42/50
Konwencje nazewnicze
  • Możesz napisać działający program na dziesiątki różnych sposobów, jednak w świecie inżynierii liczy się czytelność.
  • Społeczność Pythona wydała oficjalny, legendarny dokument o nazwie PEP-8. Jest to Biblia stylistyki i dobrych manier programisty.
  • Jedną z najważniejszych reguł zdefiniowanych w PEP-8 jest konwencja nazewnicza zwana `snake_case` (styl węża).
  • Polega ona na tym, by wszystkie nazywane przez nas rzeczy pisać wyłącznie małymi literami, a zamiast zakazanej spacji używać znaku podkreślenia `_`.
  • Zapisanie nazwy jako `moja_super_gra` jest wysoce pożądane, podczas gdy Java-podobne `MojaSuperGra` (tzw. PascalCase) lub `mojaSuperGra` (camelCase) zostanie w społeczności Pythona bardzo źle odebrane.
  • Chociaż złamanie PEP-8 zazwyczaj nie psuje komputera, używanie poprawnych konwencji jest testem na profesjonalizm w każdej rekrutacji.
Zapamiętaj: W Pythonie spacja w nazwach to wróg. Zastępuj ją znakiem podkreślenia, stosując tzw. `snake_case`.
Porównanie konwencji

Konwencje nazewnicze w Pythonie są zdefiniowane w dokumencie PEP-8, stanowiącym oficjalny przewodnik po stylu kodowania. Najważniejszą konwencją jest snake_case dla zmiennych i funkcji. Dla klas stosuje się PascalCase, a dla stałych UPPER_CASE.

Przestrzeganie konwencji nazewniczych nie jest wymagane przez interpreter (poza zakazem używania słów kluczowych), ale jest wysoce zalecane. Spójne nazewnictwo ułatwia czytanie kodu, zmniejsza ryzyko błędów i jest oznaką profesjonalizmu. Wiele firm wymaga przestrzegania PEP-8 jako warunku akceptacji kodu.

43/50
Struktura programu
  • Ostatnią sprawą formalną przed rozpoczęciem dzikiego pisania kodu, jest przyswojenie ogólnie panującej architektury pliku `.py`.
  • Dobrze sformatowany program zawsze posiada strukturę czytaną klasycznie: od lewej do prawej i z góry na dół.
  • Sam wierzchołek pliku zarezerwowany jest absolutnie dla deklaracji importowych – to tam sprowadzamy do programu zewnętrzne biblioteki i moduły rozszerzające możliwości Pythona.
  • Następnie, na kolejnym piętrze tworzymy i nazywamy stałe, uniwersalne wartości, które nie będą się zmieniać (tzw. Stałe Globalne).
  • Dopiero na samym dole, najczęściej na przestrzeni setek linijek, wdrażamy właściwą logikę: budujemy pętle, wyświetlamy menu dla klienta, żądamy wpisywania haseł.
  • Utrzymanie tej hierarchii gwarantuje, że interpreter Pythona (czytając kod zawsze z góry na dół) nie natrafi na żądanie wykonania modułu, którego ten jeszcze nie zdążył pobrać z pierwszej linijki.
# 1. SEKCJA IMPORTÓW (najwyżej w kodzie):
# Importujemy paczkę odpowiedzialną za skomplikowaną matematykę:
import math

# 2. LOGIKA I DZIAŁANIE APLIKACJI (poniżej importów):
print("Rozpoczęcie wyliczania stałej Pi z wbudowanego modułu...")

# Odpytanie ściągniętego wcześniej modułu math o dokładną liczbę Pi:
print(math.pi)
            
Schemat struktury

Struktura pliku w Pythonie podlega pewnym utartym konwencjom, które ułatwiają nawigację i utrzymanie kodu. Standardowy układ to: encoding declaration, docstring modułu, importy (standardowe, zewnętrzne, lokalne), definicje stałych, klas, funkcji i na końcu blok if __name__ == "__main__".

Blok if __name__ == "__main__" jest szczególnie ważny – pozwala na wykonywanie kodu tylko wtedy, gdy plik jest uruchomiony bezpośrednio, a nie importowany jako moduł. Dzięki temu ten sam plik może być zarówno samodzielnym skryptem, jak i biblioteką importowaną w innych projektach.

44/50
Ćwiczenie: Wizytówka
  • Nadeszła pora, aby udowodnić sobie i maszynie nabycie nowej wiedzy z zakresu sterowania wierszem poleceń.
  • Twoim pierwszym prawdziwym miniprojektem (ćwiczeniem) jest stworzenie tekstowej wizytówki biznesowej.
  • Za pomocą licznych wywołań komendy wypisującej na ekran pożądany ciąg znaków, spróbuj narysować ramkę.
  • Wewnątrz wygenerowanej ramki zamieść informacje przypominające wizytówkę: Twoje Imię, Nazwisko oraz wykonywany lub wyuczony zawód.
  • Wykorzystaj spacje wewnątrz cudzysłowów, aby zadbać o równe marginesy prawego boku gwiazdek zamykających wizytówkę.
  • Uruchom plik tak często jak to konieczne, by eksperymentalnie dopracować wszystkie szczegóły graficzne.
# Przykładowe rozwiązanie zadania wizytówki:
# Zastosowano tu wielokrotny print do formatowania prostokąta.

print("********************************")
print("* Imię i Nazwisko: Jan Kowalski*")
print("* Zawód: Python Developer      *")
print("* Miasto: Warszawa             *")
print("********************************")
            
Wynik wizytówki

Ćwiczenie tworzenia wizytówki tekstowej to klasyczne zadanie wprowadzające do programowania. Uczy precyzyjnego formatowania wyjścia, zarządzania spacjami oraz zrozumienia, jak komputery wyświetlają tekst w konsoli. Choć może wydawać się trywialne, rozwija umiejętności potrzebne przy interfejsach konsolowych.

Rozwiązując to zadanie, warto eksperymentować z różnymi znakami do budowania ramki oraz z użyciem parametru sep. Można również spróbować wyśrodkować tekst w ramce, co wymaga prostych obliczeń matematycznych. To doskonałe przygotowanie do bardziej zaawansowanych zadań formatowania danych.

45/50
Ćwiczenie: ASCII art
  • Wiedza z zakresu manipulowania przestrzeniami to brama do cudownego świata nostalgicznej sztuki ASCII (ASCII Art).
  • W czasach, gdy pierwsze komputery potrafiły generować tylko i wyłącznie czarne ekrany tekstowe bez obrazków, programiści zaczęli z nudów rysować zmysłowe obrazy z liter.
  • Nawet dziś, logując się do potężnych serwerów w serwerowni potrafią powitać nas wielkie, wymalowane tekstem smoki lub loga wielkich firm korporacyjnych.
  • Zadanie dla Ciebie: poćwicz umiejscawianie znaków specjalnych kreśląc w terminalu postać, na przykład wirtualnego kota.
  • Będziesz musiał pobawić się znakami nawiasów, kropek i lewych oraz prawych ukośników, dbając o symetryczne oddalenie spacji w każdym wywołaniu printa.
  • Pamiętaj tylko, co robi wsteczny backslash `\` – czasem trzeba napisać go podwójnie (`\\`), żeby Python potraktował go jako zwykły obrazek zamiast początku komendy `\n`.
# Przykładowe rozwiązanie sztuki graficznej ASCII z motywem kocim:

print(" /\\_/\\ ")
print("( o.o )")
print(" > ^ < ")

# Wygenerowany w ten sposób zwierzak wyświetli się przy każdym uruchomieniu skryptu!
            
Przykład ASCII art

Sztuka ASCII to fascynujące połączenie programowania i kreatywności wizualnej. Polega na tworzeniu obrazów wyłącznie za pomocą znaków tekstowych. W czasach przedgraficznych interfejsów była głównym sposobem na wizualne urozmaicenie aplikacji konsolowych, a dzisiaj przeżywa renesans w społecznościach developerskich.

Tworzenie ASCII art w Pythonie uczy precyzyjnego operowania stringami, zrozumienia znaków specjalnych (szczególnie backslasha) oraz cierpliwości w dopracowywaniu szczegółów. Warto pamiętać, że niektóre znaki muszą być poprzedzone drugim backslashem, aby Python potraktował je dosłownie.

46/50
Ćwiczenie: Obliczenia
  • Czas wdrożyć w życie obietnicę o odciążeniu mózgu ze żmudnych matematycznych kalkulacji.
  • Komputery powstały właśnie po to, by wykonywać ciężką arytmetykę setki tysięcy razy szybciej od najtęższych inżynierów.
  • Kolejne zadanie: sprawdź swoje umiejętności, łącząc w jednym zadaniu drukowanie tekstowe z czystym działaniem mnożenia w nawiasach.
  • Twoim celem jest wyprowadzenie na ekran komunikatu mówiącego o tym, ile godzin ma cały rok, gdy jest rokiem przestępnym.
  • W jednej funkcji poinformuj użytkownika co znajduje się na ekranie za pomocą zgrabnego łańcucha tekstowego, a w linijce niżej umieść nieotoczone niczym wartości.
  • Pozwól wbudowanemu kalkulatorowi wyręczyć Cię z konieczności wpisywania odpowiedzi ręcznie.
# Rozwiązanie zadania korzystające z wbudowanej arytmetyki:

# Wpierw drukujemy informacyjny string (tekst):
print("Tyle dokładnie godzin liczy każdy rok przestępny:")

# Poniżej powierzamy Pythonowi rolę kalkulatora przemnażającego dni przez godziny:
print(366 * 24)

# Odpowiedź pokaże się natychmiastowo pod tekstem.
            
Wyniki obliczeń

Ćwiczenie obliczeniowe uczy łączenia tekstu z rzeczywistą logiką arytmetyczną. Python staje się tutaj narzędziem nie tylko do wyświetlania informacji, ale przede wszystkim do przetwarzania danych. Zadanie pokazuje, jak program może samodzielnie wykonać obliczenia i przedstawić wynik.

Warto przy tym zadaniu zwrócić uwagę na różnicę między wartością liczbową a jej tekstową reprezentacją. Gdy wynik działania matematycznego jest przekazywany bezpośrednio do print(), Python najpierw wykonuje obliczenia, a dopiero potem konwertuje wynik na tekst.

47/50
Ćwiczenie: Formatowanie
  • Dla udowodnienia pełnego opanowania konsoli, połącz wiedzę na temat wszystkich parametrów ukrytych funkcji `print()`.
  • Mamy sytuację losową: napisałeś kod posiadający dwa oddzielne od siebie polecenia `print`. Twoim celem jest zmuszenie ich do zignorowania prawa przejścia do nowej linii.
  • Dodatkowo, pierwsze z nich drukuje zbiór trzech rozrzuconych elementów (np. litery A, B, C oddzielone w kodzie jedynie przecinkiem).
  • Rozwiąż zagadkę, manipulując modyfikatorem `sep` (separator elementów) oraz `end` (zakończenie linii).
  • Zablokuj wyłamywanie entera tak, aby ostateczny rezultat wyświetlił się jako zbita i dopasowana wiadomość pozioma.
  • Rozwiązywanie takich mikrozadań wyrabia tzw. pamięć mięśniową – mechanizmy te staną się po paru dniach w pełni automatyczne.
# Oczekiwane rozwiązanie formatowania złożonego:

# Pierwsza funkcja skleja słowa myślnikiem i zabija Entera wstawiając swój tekst łączący:
print("A", "B", "C", sep="-", end=" a doklejoną końcówką jest litera ")

# Druga funkcja zostanie na siłę zaabsorbowana przez linię powyżej:
print("D")

# Terminal wyświetli z dumą tylko jedną linię:
# A-B-C a doklejoną końcówką jest litera D
            
Sformatowane wyjście

Ćwiczenie z formatowaniem konsoliduje wiedzę o parametrach sep i end, ucząc precyzyjnego sterowania wyjściem programu. Umiejętność kontrolowania tego, co i jak pojawia się w konsoli, jest kluczowa przy tworzeniu czytelnych interfejsów użytkownika i raportów.

To zadanie pokazuje, jak ważne jest zrozumienie domyślnych zachowań Pythona. Domyślne wartości sep=" " i end="\n" są wygodne, ale ich zmiana otwiera nowe możliwości. Profesjonalni programiści często dostosowują te parametry do specyficznych potrzeb.

48/50
Narzędzia online
  • Czasem zdarza się sytuacja, w której lądujemy przy komputerze służbowym czy publicznym, gdzie instalacja oprogramowania zewnętrznego nie jest możliwa.
  • Nie oznacza to jednak przerwy w nauce! Ogromna część edukacji programistycznej odbywa się w dzisiejszych czasach bezpośrednio w 'chmurze'.
  • Środowiska wewnątrzprzeglądarkowe omijają uciążliwy proces pobierania instalatorów, oferując gotowe maszyny wirtualne i kompilatory zasilane mocą zagranicznych serwerów.
  • Do najbardziej fenomenalnych, darmowych narzędzi w tej klasie zaliczyć można "Replit" – imitujący IDE portal społecznościowy z wbudowanym serwerem Pythona i konsolą.
  • Wśród inżynierów Data Science niekoronowanym królem jest platforma Google Colaboratory (oraz siostrzany Jupyter Notebook), skupiona na notatnikach edukacyjnych z wbudowanymi modułami uruchomieniowymi.
  • Wszystkie wymienione wyżej opcje pozwalają na wyklikanie terminala jednym przyciskiem wprost z ulubionej przeglądarki Chrome czy Firefox.
Zrzuty narzędzi online

Narzędzia online do programowania zrewolucjonizowały sposób, w jaki uczymy się kodować. Platformy takie jak Replit, Google Colab czy Jupyter Notebook umożliwiają pisanie i uruchamianie kodu bezpośrednio w przeglądarce, bez instalowania oprogramowania. To sprawia, że pierwsze kroki w programowaniu są dostępne dla każdego.

Każde z narzędzi online ma swoje zalety. Replit oferuje pełne środowisko IDE w chmurze. Google Colab specjalizuje się w notebookach Jupyter z darmowym dostępem do GPU. Jupyter Notebook jest standardem w data science, łącząc kod, wizualizacje i dokumentację w jednym miejscu.

49/50
Podsumowanie części 1
  • Dotarliśmy szczęśliwie do brzegu pierwszego, potężnego etapu Twojej programistycznej wędrówki.
  • Podczas tego szkolenia zgłębiłeś definicje języków wysokopoziomowych, pojęcie bycia interpreterem oraz bezkonkurencyjną popularność węża Pythona.
  • Zainstalowaliśmy silnik wykonawczy na komputerze i wyciągnęliśmy na światło dzienne mityczny "Terminal" oraz inżynierski tryb testowy REPL.
  • Zapoznaliśmy się ze sprzętem (edytory takie jak VS Code, IDLE) oraz utworzyliśmy autorskie skrypty źródłowe ze specjalnym rozszerzeniem `.py`.
  • Spędziliśmy mnóstwo czasu rzucając wyzwania absolutnie najważniejszej funkcji komunikacyjnej – `print()`, męcząc ją parametrami `sep`, `end` i znakami specjalnymi.
  • Rozwikłaliśmy tajemnice ukrywanych komentarzy `#` i wielkich, czerwonych potworów wywołujących krzyki z napisem SyntaxError.
Zapamiętaj: Świetna robota inżynierze! Choć dzisiejsze potyczki mogą wydawać się proste, to postawienie silnych fundamentów warunkuje brak powstawania potwornych dziur w architekturze wiedzy na późniejszych latach edukacji.
Mapa myśli części 1

Podsumowanie modułu to dobry moment na refleksję nad zdobytą wiedzą. W tej części student poznaje fundamentalne pojęcia programistyczne, instaluje i konfiguruje środowisko pracy, uczy się pisać i uruchamiać pierwsze skrypty oraz opanowuje podstawy funkcji print(). To solidny fundament pod dalszą naukę.

Warto w tym momencie powtórzyć materiał, kładąc nacisk na ćwiczenia praktyczne. Każde z zadań rozwija konkretne umiejętności programistyczne. Regularne powtarzanie i eksperymentowanie z kodem to klucz do sukcesu w nauce programowania.

50/50
Zapowiedź części 2
  • Wypisywanie predefiniowanego tekstu ze statycznego pliku działa, cieszy oko i poprawia morale na samym początku. Niestety, w żaden sposób nie czyni jeszcze komputera inteligentnym rozwiązaniem naszych problemów.
  • W prawdziwych aplikacjach biznesowych i systemach IT, niemal nigdy nie wiemy, co dokładnie znajdzie się w pamięci programu – przecież imię wpisywane podczas rejestracji zależy wprost od obecnego klienta siedzącego przed monitorem.
  • Z tego też powodu w drugiej potężnej części naszej podróży rzucimy się w wir dynamicznych zasobów maszyny. Będziemy bezkarnie zapisywać i kasować tajne dane z wirtualnych szuflad przydzielanej pamięci RAM komputera.
  • Pudełka te, ze względu na dynamicznie zmieniającą się podczas działania aplikacji wartość ich środka, noszą kluczowe miano – tzw. Zmiennych (Variables).
  • Odkryjemy, dlaczego pudełko z liczbami gryzie się z pudełkiem wypełnionym literami (Typy Danych) i w jakim systemie połączymy je w bezpieczną więź.
  • Uruchomimy również pierwszą poważną interakcję z człowiekiem, prosząc go bezpośrednio w konsoli o podanie prywatnych wartości tekstowych używając nieustępliwej funkcji interkomowej `input()`. Do zobaczenia w drugiej części!
Ikony tematów części 2

Moduł drugi będzie naturalną kontynuacją zdobytej wiedzy, przenosząc nas ze świata statycznych komunikatów w świat dynamicznych danych. Zmienne są absolutnym fundamentem programowania – dzięki nim programy mogą reagować na różne sytuacje i przechowywać wyniki obliczeń.

W kolejnej części poznamy funkcję input(), która pozwoli na tworzenie prawdziwie interaktywnych programów. To moment przejścia od programów wyświetlających informacje do takich, które potrafią je odbierać, przetwarzać i odpowiednio na nie reagować.