article banner (priority)

Pierwszy program w Pythonie

Kod to tylko tekst. Aby ożył, potrzebny jest ktoś, kto go zinterpretuje, czyli zrozumie i wykona zawarte w nim instrukcje. Nawet najlepsza książka stanie się bezużyteczna, gdy nie ma czytelnika, którego mogłaby poruszyć lub czegoś nauczyć. Również kod nie ma żadnej wartości, póki nie zyska interpretera. Interpreter to taki program, który rozumie nasz kod. W najprostszym przypadku czyta go linijka po linijce i wykonuje jego instrukcje. W innych przypadkach tłumaczy ten kod na prostszy język, który będzie zrozumiały dla innego interpretera0.

Kod jest więc po prostu zestawem instrukcji. Interpreter wykonuje je jedna po drugiej i dzięki temu programy działają i czynią swoją magię. To trochę jak szczegółowe instrukcje, które dostawaliśmy od rodziców, gdy po raz pierwszy mieliśmy sami podgrzać obiad w piekarniku albo zrobić pranie. Instrukcje były kodem, a my byliśmy interpreterem tych instrukcji.

W czasie naszej przygody z programowaniem przyda nam się interpreter, któremu będziemy przekazywać instrukcje i obserwować, jak je zrozumie. Takie trochę konwersacje w obcym języku z... komputerem. Z Pythonem możemy rozmawiać na kilka sposobów, zaczynając od programu zainstalowanego na naszym komputerze, aż do stron internetowych ułatwiających takie konwersacje. Omówmy te możliwości po kolei.

Instalacja Pythona

Mówi się o instalacji języka Python, co jest jednak pewnym skrótem myślowym. Instaluje się interpreter języka Python, czyli program, który ten język będzie rozumiał i wykonywał jego instrukcje1. Współcześnie można go zainstalować na wszystkich popularnych systemach operacyjnych, tak jak instaluje się programy czy gry. Wystarczy wejść na stronę https://www.python.org/downloads/ i pobrać plik do instalacji. Otwórz ten plik, zaznacz "Customize installation" i przejdź przez wszystkie kroki, pozostając przy ustawieniach domyślnych, z jednym tylko wyjątkiem: zaznacz pole "Add Python to environment variables" (najpewniej w drugim kroku). Jeśli proces się udał, to Python powinien już być na Twoim komputerze2.

Dodanie Pythona do zmiennych środowiskowych ("Add Python to environment variables") pozwala na jego odnalezienie, gdy wołamy komendę "python" w wierszu poleceń. Jeśli nie zaznaczyłeś/zaznaczyłaś tego pola, ponownie przejdź przez proces instalacji, tym razem je zaznaczając.

W czasie instalacji Python zaznacz "Add Python to environment variables". Umożliwi to korzystanie z niego w konsoli. Zaznaczenie "Download debug binaries" nie powinno być konieczne, ale lepiej zaznacz je, gdyż może się to przydać na dalszych etapach nauki.

Użycie Python z Wiersza poleceń

Następnym istotnym krokiem na drodze naszej nauki będzie uruchomienie Wiersza poleceń. Jest to bardzo istotne miejsce dla programistów. Pozwala na uruchamianie pewnych programów poprzez podanie ich nazwy. Wbrew pozorom, jest to ogromna wygoda. Wyobraź sobie, że potrzebujesz wykonać kod Python znajdujący się w pliku "hello.py". Gdyby interpreter Python uruchamiałby się jak typowe programy, to musielibyśmy uruchomić go, wskazać plik, zaakceptować i dopiero wtedy moglibyśmy zobaczyć wynik. Ponieważ uruchamia się go poprzez konsolę, wystarczy wpisać "python hello.py" i zatwierdzić przez Enter. Aby uruchomić go jeszcze raz, wystarczy w konsoli wcisnąć strzałkę w górę, przez co wybieramy poprzednio używane polecenie, i zatwierdzić przez Enter. Jest to spora wygoda dla programistów. Jeśli chcemy sprawdzić, którą wersję języka Python mamy zainstalowaną, wystarczy wpisać "python --version". W klasycznym programie trzeba by szukać tej informacji. Co więcej, wiersz poleceń umożliwia łatwą interakcję z użytkownikiem. Dobrym przykładem będzie Python REPL, który poznamy już niedługo. Używanie Pythona przez wiersz poleceń jest więc sporą wygodą.

Program Python uruchomiony w wierszu poleceń.

Aby otworzyć wiersz poleceń na systemie Windows, najłatwiej jest kliknąć okno wyszukiwania (w lewym dolnym rogu) i wpisać "cmd". Dzięki temu znajdziemy program podpisany jako "Wiersz polecenia"6. Otwórz go przez kliknięcie jego ikony lub naciśnięcie przycisku Enter. Na MacOS wystarczy otworzyć program o nazwie "Terminal", znajdujący się wśród aplikacji.

Na systemie Windows wiersz polecenia znajdziemy poprzez "cmd" lub nazwę "Wiersz polecenia".

Wygląd Wiersza poleceń na systemie Windows 10.

Gdy już mamy otwarty wiersz poleceń, upewnijmy się, że Python jest poprawnie zainstalowany na naszym komputerze. Wpisz "python --version". Jeśli nie wyświetla się wersja, to znaczy, że Python nie został zainstalowany poprawnie. Zacznij instalację od początku, pamiętając o zaznaczeniu "Add Python to environment variables" przy instalacji. Zainstalowany Python powinien być w co najmniej wersji 3.6. Jeśli masz starszą wersję, to przykłady prezentowane w książce mogą nie zadziałać. W takim wypadku również zacznij proces instalacji od początku, upewniając się, że pobierasz instalator do nowszej wersji języka.

Sprawdzenie wersji Python zainstalowanego na komputerze.

Jeśli masz plik z kodem napisanym w języku Python, możesz go uruchomić poprzez komendę "python" i nazwę pliku. Przykładowo, jeśli plik nazywa się "hello.py"7, wpisz "python hello.py". Musi się on jednak znajdować w tym samym miejscu, w którym otwarty jest wiersz poleceń.

W Wierszu poleceń, po lewej stronie od miejsca gdzie wpisujemy komendy, znajduje się ścieżka w której aktualnie się znajdujemy.

Pliki Python najłatwiej nam będzie tworzyć przez narzędzie zwane środowiskiem programistycznym (IDE). Na ten moment, na potrzebę następnego ćwiczenia, możesz utworzyć plik tekstowy w folderze. Uważaj — jego domyślnym rozszerzeniem będzie txt. Jeśli przy zmianie nazwy pliku nie widzisz rozszerzenia, to znaczy, że na końcu jest niewidoczne ".txt". Na tym etapie nie będzie to nam przeszkadzać, tylko w takim wypadku uruchom ten program przez "python hello.py.txt".

Nowy plik na systemie Windows tworzymy poprzez kliknięcie prawym przyciskiem myszy w folderze.

Do tworzenia i nazywania plików jeszcze wrócimy. Na ten moment poznajmy naszego najlepszego przyjaciela przy nauce języka Python: REPL.

Zadanie: Pierwszy program

  • Zainstaluj Python zgodnie z instrukcjami podanymi w tym rozdziale.
  • W folderze, w którym uruchomiony jest wiersz poleceń (domyślnie jest to folder domowy aktualnego użytkownika), utwórz plik i zmień jego nazwę na "hello.py". Kliknij w niego prawym przyciskiem i wybierz "Otwórz za pomocą" i znajdź "Notatnik".
  • W pliku napisz print("Hello from Python"), podobnie jak na powyższym zrzucie ekranu.
  • W Wierszu poleceń wywołaj "python hello.py" (lub "python hello.py.txt", jeśli nie udało Ci się zmienić rozszerzenia pliku).

Jeśli udało Ci się poprawnie wykonać wszystkie kroki, zobaczysz tekst "Hello from Python". Gratulacje, to Twój pierwszy program w języku Python.

Używanie REPL

REPL (ang. read-eval-print loop) to specjalne narzędzia stworzone do tego, aby dostarczać przestrzeń do uruchamiania kodu w danym języku programowania i pozwolić na obserwację, jaki daje on efekt. Zasada jego działania jest prosta: w każdym kroku pozwala nam na napisanie kolejnego fragmentu kodu. Gdy go zaakceptujemy przez enter, natychmiast go wywołuje i wyświetla nam wynik. Następnie pozwala nam na wpisanie kolejnego fragmentu, tak jakby był dalszą częścią wcześniej napisanego kodu. REPL jest kluczowym narzędziem do nauki programowania w języku Python. Jest on dostarczany razem z językiem. Istnieje kilka możliwości, jak możemy z niego skorzystać.

Razem z językiem Python, instalowany jest program o nazwie IDLE. Jest to niewielkie środowisko do pracy z językiem Python. Wystarczy je uruchomić, by skorzystać z REPL. Tutaj możesz pisać kod Python, a po zaakceptowaniu zobaczysz, jaki jest wynik jego działania.

Użycie IDLE.

REPL można również uruchomić z Wiersza poleceń. Wystarczy wpisać komendę "python". Jeśli Python jest poprawnie zainstalowany, to REPL powinien się uruchomić. Od tego momentu możemy pisać kolejne komendy i obserwować, jaki dają skutek.

Użycie REPL w wierszu poleceń.

Zadanie: Uruchom i przetestuj REPL

  • Otwórz IDLE.
  • Uruchom kod print("Hello"), zaakceptuj przez Enter i zaobserwuj, co się stanie.
  • Uruchom kod 10 * 20 + 30, zaakceptuj przez Enter i zaobserwuj, co się stanie.
  • Uruchom wiersz poleceń (na Windowsie "cmd" lub "Wiersz polecenia", na MacOS lub Linux "Terminal").
  • Wpisz komendę python i zaakceptuj przez Enter.
  • Powtórz kroki 2 i 3 w Wierszu poleceń.

Środowisko programistyczne

REPL jest świetnym narzędziem do nauki języka Python, ale aby pisać poważne projekty, potrzebować będziemy narzędzia, w którym będziemy mogli tworzyć i rozwijać pliki w tym języku. Moglibyśmy użyć Notatnika3, ale jego możliwości są bardzo ograniczone. Znacznie lepsze są dedykowane narzędzia stworzone dla programistów do tworzenia i rozwijania projektów programistycznych, znane jako Środowiska programistyczne4. Mają one wsparcie dla wielu przydatnych funkcjonalności, takich jak:

  • przeglądanie całego drzewa plików w projekcie,
  • podpowiedzi przy pisaniu kodu,
  • kolorowania składni,
  • podkreślanie miejsc, w których popełniliśmy błędy,
  • narzędzia pozwalające na łatwe poruszanie się po kodzie,
  • uruchamianie kodu z poziomu IDE i wyświetlanie wyniku jego działania.

Użycie PyCharm z podpisanymi różnymi funkcjonalnościami tego programu.

Istnieje wiele dobrych IDE dla języka Python. Osobiście polecam PyCharm w wersji Community. Jest ono darmowe i open-source. Bardzo dobrą alternatywą jest też Visual Studio Code. W tej książce wykorzystywać będę PyCharm. Jego plik instalacyjny można pobrać ze strony JetBrains5. Po zainstalowaniu PyCharm utwórz nowy projekt. Na początek, domyślne ustawienia powinny być w pełni wystarczające.

Takie okno zobaczymy po zainstalowaniu PyCharm. Aby utworzyć nowy projekt, wybierz "New project".

Gdy tworzymy projekt, możemy określić jego nazwę poprzez zmianę nazwy folderu (pole "Location"). Polecam także zaznaczyć "Create a main.py welcome script".

Na powyższym zrzucie ekranu zaznaczone jest pole "Create a main.py welcome script". Dzięki temu w naszym projekcie zostanie stworzony przykładowy plik w języku Python. Po lewej stronie od if __name__... powinien się pojawić zielony trójkąt. Przy jego pomocy uruchomisz kod znajdujący się wewnątrz tego warunku if. Wynik działania tego programu powinien się pojawić w oknie u dołu.

PyCharm z uruchomionym "main.py welcome script". Zawiera on przykładowy kod w języku Python. Ten kod stanie się jasny na przestrzeni tej części książki.

*Jednym ze sposobów by uruchomić program w języku Python jest użycie zielonego trójkąta. Pojawia się on obok specjalnej struktury if __name__ == '__main__':. *

Po uruchomieniu kodu Python w PyCharm, u dołu powinno otworzyć się okno wyniku działania tego programu. Tutaj wynikiem jest tekst "Hi, PyCharm".

Alternatywnie możemy utworzyć samemu plik z kodem Python. Kliknij prawym przyciskiem myszy na folder, w którym znajduje się projekt, wybierz "New > Python file". Wpisz dowolną nazwę i zaakceptuj.

Aby utworzyć nowy plik Python, kliknij prawym przyciskiem myszy na folder w którym chcesz utworzyć plik, po czym wybierz "New > Python file".

Po wybraniu "New > Python file", wyświetli się okno nazwania pliku.

Utworzy się nowy plik, zupełnie pusty. W środku możesz wpisać po prostu "print("Hello")", po czym kliknąć prawym przyciskiem myszy na pliku i wybrać opcję "Run {nazwa pliku}".

Kod w pliku możemy także uruchomić poprzez kliknięcie prawym przyciskiem myszy na plik i wybranie opcji "Run {nazwa pliku}".

To powinno uruchomić kod z pliku i wyświetlić rezultat w oknie u dołu.

Po uruchomieniu kodu Python w PyCharm, u dołu powinno otworzyć się okno wyniku działania tego programu. Tutaj wynikiem jest tekst "Hello".

PyCharm ma między innymi własne wsparcie dla REPL. Na dole znajdziesz przycisk do otwarcia zakładki "Python Console". Po jego kliknięciu otworzy się okno REPL, w którym możemy patrzeć, jak zadziała napisany przez nas kod Python.

Gdy wybierzemy "Python Console" na dole PyCharm, otworzy się okno, a w nim Python REPL. Możemy w nim testować działanie kodu Python.

Zadanie: Przygotuj i przetestuj edytor kodu

  • Pobierz i zainstaluj PyCharm Community.
  • Utwórz nowy projekt, a w nim albo skorzystaj z przykładowego pliku, albo utwórz plik o nazwie "test.py".
  • Uruchom kod z domyślnie utworzonego pliku i zaobserwuj, jaki jest wynik jego działania.

Edytory Online

Edytory kodu możemy znaleźć także w wersji internetowej. Ich przewagą jest łatwość uruchomienia kodu oraz udostępniania go innym. Za przykładowy edytor online może nam posłużyć replit.com. Po jego lewej stronie piszemy edytor kodu, a po prawej wynik działania tego kodu.

Użycie języka Python na stronie replit.com. Po lewej stronie piszemy kod w edytorze dającym podpowiedzi i kolorowanie składni. Po wciśnięciu przycisku "Run", po prawej stronie zobaczymy, co zostało przez ten kod wypisane do konsoli.

Gdy zadajemy innym pytanie dotyczące naszego kodu (na przykład na forach czy grupach), dobrą praktyką jest umieszczenie go w jednym z edytorów online i przesłanie publicznego linku. Dzięki temu osoby chcące pomóc, zobaczą Twój kod w całości, z eleganckim kolorowaniem składni. Będą mogły także łatwiej sprawdzić, czy ich rozwiązanie zadziała i odpowiedzieć Ci nowym linkiem.

Kod w książce

Wszystkie fragmenty kodu przedstawione w książce możemy uruchomić w REPL, PyCharm albo w edytorze online. W niektórych tylko przypadkach są one kontynuacją wcześniej napisanego kodu. Jeśli tak jest, to musisz przekopiować zarówno ten, jak i poprzedni fragment. Zwróć tylko uwagę, by korzystać przy tym z Pythona w wersji trzeciej.

Komentarze

W Pythonie wszystko, co pojawi się po znaku # jest ignorowane, aż do końca linii. Są to tak zwane komentarze. Są przydatne do opisywania kodu.

# To jest komentarz,
# tekst dla osoby czytającej kod,
# zostanie zignorowany przez interpreter

Będę używał komentarzy, by opisać dany fragment kodu. Będę je także umieszczał za print, by poinformować Cię, co zostanie wypisane w wyniku działania danego kodu.

print("Witaj, Świecie")  # Witaj, Świecie

# Jak widać, gdy używam print, umieszczam
# komentarz informujący, co zostało wypisane.

Nie zabraknie pewnych wyjątków od tej reguły. Gdy na przykład pojedynczy print zostanie użyty wielokrotnie do wyświetlenia różnych tekstów, to zamiast za nim, komentarz informujący o tym, co zostało wypisane umieszczę na końcu fragmentu kodu.

for i in range(3):
    print(i)

# Wypisze:
# 0
# 1
# 2

Jak mówię, że coś zostanie wypisane, to w przypadku REPL pojawi się zaraz po zaakceptowaniu fragmentu kodu. Jak uruchomimy ten kod w PyCharm, to będzie on wyświetlony w oknie wyniku działania programu. Jeśli uruchomimy program z Wiersza poleceń, wypisany tekst pojawi się poniżej uruchomienia programu.

Instrukcje i białe znaki

Tak jak na wspomnianej wcześniej liście od rodziców było wiele instrukcji, tak i w naszym kodzie możemy umieścić więcej niż jedną instrukcję. Instrukcja to nierozdzielne polecenie dla interpretera — najczęściej wywołanie funkcji, deklaracja, przypisanie lub zwrócenie wartości. W języku Python typowo różne instrukcje znajdują się w różnych liniach. Linia może być pusta albo zawierać komentarz, a w takim wypadku nie zawiera instrukcji. Jeśli jednak mamy dwa aktywne fragmenty kodu, na przykład wywołanie print, to są to różne instrukcje.

print("Instrukcja 1")  # Instrukcja 1
print("Instrukcja 2")  # Instrukcja 2

Co istotne, te instrukcje muszą być w różnych liniach. Nasz kod nie zadziała, gdy będą w jednej.

print("Tekst 1")print("Tekst 2")
# Błąd! Kod nie zostanie zrozumiany

Python jest bardzo wrażliwy na używane przez nas spacje i entery. Należy więc być ostrożnym. Na pocieszenie, środowisko programistyczne, takie jak PyCharm, pomoże nam utrzymywać nasz kod w odpowiednim porządku. Ułatwi nam poprawne pisanie kodu, a jeśli popełnimy jakiś błąd, podkreśli to miejsce. Najedź myszką na to podkreślenie, a zostanie wyświetlona informacja, jaki jest problem z napisanym kodem.

Błąd kompilacji zaznaczony jest w PyCharm czerwonym podkreśleniem. Wystarczy na niego najechać, by zobaczyć informację o błędzie.

Jeśli popełnimy istotny błąd, a mimo to nasz program się uruchomi, to jego działanie zostanie przerwane, gdy do tego błędu dojdzie. Mówi się, że wtedy nasz kod został przerwany poprzez wyjątek. Wyjątki są wyświetlane w oknie wynikowym na czerwono. Zazwyczaj zawierają opis wyjaśniający, co zrobiliśmy nie tak.

Przekonasz się o tym wszystkim w czasie nauki. Wyjątki są naprawdę przydatne. Uważnie czytaj wiadomości, jakie przekazują, bo zawierają podpowiedzi jak poprawić błędny kod.

Polskie znaki

W nowszych wersjach języka Python polskie znaki nie powinny stanowić problemu. Jeśli jednak zobaczysz błąd "SyntaxError: Non-ASCII character...", wstaw "# coding=utf-8" na początku pliku. To ustawi kodowanie na utf-8, które posiada wsparcie dla polskich znaków.

# coding=utf-8
print("Mała żaba łupi kraba")  # Mała żaba łupi kraba

To jak? Wygląda na to, że jesteśmy gotowi, by przejść do konkretów. Pomówmy zatem o wartościach.

0:

Tłumaczenie z języka bardziej skomplikowanego na prostszy to kompilacja.

1:

Dodatkowe wtrącenie dla głodnych formalizmów: Python nie jest wyłącznie interpretowanym językiem. Jest najczęściej kompilowany do Python bytecode, który jest uruchamiany na maszynie wirtualnej. W komercyjnych zastosowaniach często kompiluje się kod Python bezpośrednio do bytecode, który jest rozumiany przez sam procesor. Ta wiedza nie będzie potrzebna ani w dalszej części książki, ani przy programowaniu w języku Python na poziomie podstawowym.

2:

W razie jakichkolwiek problemów wyszukaj na YouTube "instalacja Python" oraz dodaj do tego system operacyjny, jakiego używasz Windows/Mac/Linux. Niewątpliwie znajdziesz dużą liczbę filmów, prezentujących cały proces instalacji od początku do końca.

3:

Co prawda możliwe jest w Microsoft Word zapisanie w trybie czysto tekstowym, ale domyślnie dodaje on elementy mówiące o stylach czy wielkości czcionek, które nie są zrozumiałe dla interpretera.

4:

Powszechnie stosowanym skrótem jest IDE, od Integrated Development Environment, czyli Zintegrowane Środowisko Programistyczne.

5:

Aktualnie jest to strona https://www.jetbrains.com/pycharm/download, ale polecam wpisać w Google "PyCharm download", a łatwo znajdziesz aktualną stronę.

6:

Istnieje pewna niespójność w tłumaczeniu. CLI (command-line interface) jest najczęściej tłumaczone jako "Wiersz poleceń", ale czasem jako "Wiersz polecenia". Program, w którym CLI jest uruchamiane, jest często nazywany Terminalem.

7:

Pliki z kodem Python standardowo zapisuje się z rozszerzeniem ".py", co jest skrótem od Python. Podobnie jak pliki tekstowe zapisuje się z rozszerzeniem ".txt", a pliki PDF z rozszerzeniem ".pdf". Rozszerzenie nie jest jednak konieczne i poprawnie napisany kod python wywoła się, nawet jeśli będzie miał inne rozszerzenie.