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.
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ą.
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.
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.
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ń.
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".
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.
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.
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.
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.
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.
if __name__ == '__main__':
. *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.
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}".
To powinno uruchomić kod z pliku i wyświetlić rezultat w oknie u dołu.
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.
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.
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.
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.
Tłumaczenie z języka bardziej skomplikowanego na prostszy to kompilacja.
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.
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.
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.
Powszechnie stosowanym skrótem jest IDE, od Integrated Development Environment, czyli Zintegrowane Środowisko Programistyczne.
Aktualnie jest to strona https://www.jetbrains.com/pycharm/download
, ale polecam wpisać w Google "PyCharm download", a łatwo znajdziesz aktualną stronę.
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.
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.