Czym jest programowanie?
Przed napisaniem kodu warto zrozumieć, co się dzieje, gdy komputer „wykonuje program”
Po tym rozdziale będziesz mógł: rozróżniać program, kod źródłowy,
algorytm, instrukcję i wyrażenie; wyjaśnić rolę bajt-kodu w CPython; ustawić główne
etapy historii Python; rozróżniać python.org, dokumentację, PyPI, PSF i PEP; nazwać obszary
zastosowań i granice Python; uruchomić print(...) i czytaj
Komunikat o błędzie.
Czym jest programowanie?
Komputer jest niesamowicie szybki, ale całkowicie niesamodzielny. Sam z siebie nie potrafi w ogóle niczego — ani otworzyć gry, ani pokazać zdjęcia, ani policzyć reszty w sklepie. Wszystko, co robi komputer, robi dlatego, że ktoś wcześniej napisał dla niego dokładną sekwencję poleceń. Ta sekwencja nazywa się program, a proces jego pisania jest programowanie.
Program tekstowy nazywa się kodem źródłowym (source code). Procesor nie jest wykonuje ją bezpośrednio: używa w zeszycie ćwiczeń CPython przygotowuje kod i wykonuje ją. Na pierwszym poziomie nazwiemy ten proces pracą tłumacz; dokładna schematyka z bajtkodem podana poniżej.
Algorytm, instrukcja, wyrażenie
Kilka słów, które pojawią się w każdym rozdziale tej książki – raz się przyda zgadzam się co do tego, co mają na myśli:
- Algorytm jest ostateczną, jednoznacznie podaną sekwencją kroków, co dla poprawnych wejść prowadzi do wyniku lub zakończenia. Wynik może zależeć od danych wejściowych lub losowości — nie musi być zawsze taka sama.
- Instrukcja (statement) to jedna pełna instrukcja dla programu, na przykład "Wyświetl tekst na ekranie" lub "Zapisz numer do pamięci".
- Ekspresja (expression) to część kodu, która ma wartość, taką jak
2 + 2lub"Привет" + "!". Wyrażenia często znajdują się wewnątrz instrukcji. - Program jest uporządkowanym zbiorem instrukcji w języku programowania, implementacja jednego lub więcej algorytmów.
- Kod maszynowy to ciąg liczb, który wykonuje się bezpośrednio CPU. Ludzie prawie nigdy nie piszą go ręcznie, a to właśnie lubią języki Python oraz tłumaczy, którzy zamieniają przyjazny dla ludzi kod w kod maszynowy.
Interpreter i kompilator
Poziom 1 (wystarczający, by zacząć). Implementacja Python przyjmuje kod źródłowy i organizuje jego wykonanie zgodnie z zasadami sterowania przepływem. Zwykle nazywa się ją tłumacz. To celowo uproszczony model.
Dla porównania, niektóre języki (np. C lub Rust) mają osobny krok — Kompilator tłumaczy cały kod źródłowy na kod maszynowy z góry, oraz Dopiero wtedy uruchamiany jest gotowy program. W normalnym CPython uruchamianiu użytkownik nie wykonuje maszynowy plik z wyprzedzeniem, więc Python nazywa się interpretacja. To jest opis sposobu uruchamiania, a nie stwierdzenie, że kompilacji nie ma.
Poziom 2 (jeśli zastanawiasz się, co tak naprawdę się dzieje). Oficjalny („referencyjna” bajtcode (kompaktowe instrukcje, niezrozumiałe dla człowieka, ale szybkie do wykonania), a następnie wykonuje ten bytecode przy pomocy Python VM (maszyny wirtualnej). Wszystko dzieje się automatycznie i niezauważalnie dla ciebie — po prostu teraz wiesz, że „interpretowane” nie znaczy „bez ani jednego kroku kompilacji”.
Więcej informacji o CPython można znaleźć w sekcji „Wspólnota i filozofia Python”
Dlaczego twoje dzieci powinny nauczyć się programowania?
Programowanie nie jest zastosowaniem dla zawodu „programisty”
- Błąd — to normalne. Program prawie nigdy nie działa za pierwszym razem, i nie jest to powód do zmartwienia — to część procesu. Programowanie uczy spokojnie znajdować przyczynę i próbować ponownie, zamiast bać się popełnić błąd.
- Pomysł zamienia się w efekt. Myśl „a co jeśli zrobisz to tak”
- To umiejętność przenośna. Umiejętność rozłożenia złożonego zadania na proste kroki Przydaje się znacznie poza programowaniem – w szkole, pracy i codziennym życiu Zadania.
Dlaczego Python?
Istnieją setki języków programowania. Python wybranych jako pierwszy język w trzech praktycznych Przyczyny:
- Czyta się prawie jak zwykły tekst. String
if age >= 18:jest zrozumiałe bez tłumaczenia. Mniej abstrakcyjne składnia — więcej uwagi poświęconej samej idei. - Jeden język – bardzo różne rezultaty. Gry są pisane i rysowane na Python grafika, składanie aplikacji desktopowych i webowych, trenowanie modeli sztucznej inteligencji. Wszystko, o czym przeczytasz w tej książce, jest napisane w tym samym języku.
- Ogromna społeczność. Jeśli masz pytanie, prawdopodobnie ktoś inny już o to pytałem i otrzymałem odpowiedź. Gotowe narzędzia (nazywane bibliotekami lub pakietów) dla Python napisano ich ogromną liczbę — więcej o tym później Ten sam rozdział.