# 1. Na zaostrzenie apetytu

Jeśli dużo pracujesz na komputerach, znajdziesz w końcu jakieś zadanie, które chciałbyś zautomatyzować. Na przykład możesz chcieć wykonać znajdź-i-zamień w wielu plikach tekstowych lub zmienić nazwę i przearanżować w skomplikowany sposób zbiór plików fotografii. Być może chciałbyś napisać własną małą bazę danych, lub wyspecjalizowaną aplikację GUI lub prostą grę.

Jeśli jesteś zawodowym deweloperem oprogramowania, mógłbyś chcieć pracować z kilkoma bibliotekami C/C++/Java, ale uważałbyś zwykły cykl napisz/skompiluj/przetestuj/zrekompiluj za zbyt wolny. Może piszesz zestaw testów dla takiej biblioteki i pisanie kodu testowego jest dla ciebie nudnym zajęciem. Lub może napisałeś program, który mógłby użyć języka rozszerzeń i nie chcesz projektować i implementować całego nowego języka dla swojej aplikacji.

Python jest językiem dla ciebie.

Mógłbyś napisać skrypt w uniksowym shellu lub windowsowy program wsadowy dla niektórych z tych zadań, lecz skrypty shellowe są najlepsze w przenoszeniu plików i zmieniania danych tekstowych, nie nadają się najlepiej dla aplikacji z graficznym interfejsem użytkownika lub gier. Mógłbyś napisać program w C/C++/Javie, ale może zająć wiele czasu pracy deweloperskiej, aby dostać jedynie wstępny szkic programu. Python jest łatwiejszy w użyciu, dostępny na Windows, macOS i uniksowe systemy operacyjne i pomoże ci wykonać zdanie szybciej.

Python jest prosty w użyciu, ale jest prawdziwym językiem programowania, oferującym dużo więcej struktury i wsparcia dla dużych programów niż skrypty shell i pliki wsadowe mogą zaoferować. Z drugiej strony Python oferuje również dużo więcej sprawdzeń błędów niż C i będąc językiem bardzo-wysokiego-poziomu, ma wbudowane wysoko-poziomowe typy danych, takie jak elastyczne tablice i słowniki. Z powodu tych bardziej ogólnych typów danych Python jest odpowiedni dla dużo większej domeny problemów niż Awk lub nawet Perl, mimo to wiele rzeczy w Pythonie jest co najmniej tak prostych jak w tych językach.

Python pozwala ci podzielić twój program na moduły, które mogą zostać wykorzystane w innych programach Pythona. Ma dużą kolekcję standardowych modułów, które możesz użyć jako podstawę dla swoich programów — lub jako przykładów do rozpoczęcia nauki programowania w Pythonie. Niektóre z tych modułów dostarczają rzeczy jak plikowe wejście/wyjście, wywołania systemowe, gniazda oraz nawet interfejsy do narzędzi graficznych interfejsów użytkownika takich jak Tk.

Python jest językiem interpretowanym, co może oszczędzić ci znaczy czas podczas pracy nad programem, ponieważ nie jest potrzebna kompilacja i linkowanie. Interpreter może być używany interaktywnie, co ułatwia eksperymentowanie z funkcjami języka, pisanie programów „do wyrzucenia” lub testowanie funkcji podczas rozwijania programu metodą bottom-up. Jest również poręcznym biurkowym kalkulatorem.

Python pozwala programom być pisanym kompaktowo i czytelnie. Programy pisane w Pythonie są typowo dużo krótsze niż ich odpowiedniki w C, C++ lub Javie, z kilku powodów:

- wysoko-poziomowe typy danych pozwalają wyrazić złożone operacje w jednym wyrażeniu;

- grupowanie wyrażeń odbywa się za pomocą wcięć zamiast otwierających i zamykających nawiasów;

- deklaracje zmiennych lub argumentów nie są potrzebne.

Python jest rozszerzalny: jeśli wiesz, jak programować w C, prosto możesz dodać nową wbudowaną funkcję lub moduł do interpretera, zarówno aby wykonywać krytyczne operacje z maksymalną szybkością, lub linkować programy Pythona do bibliotek, które mogą być dostępne tylko w formie binarnej (takie jak specyficzne dla dostawcy biblioteki graficzne). Kiedy już jesteś naprawdę nakręcony, możesz połączyć interpreter Pythona z aplikacją napisaną w języku C i użyć go jako rozszerzenia lub języka poleceń dla tej aplikacji.

Swoją drogą, nazwa języka pochodzi od programu BBC „Latający Cyrk Monty Pythona” i nie ma nic wspólnego z gadami. Tworzenie odniesień do skeczy Monty Pythona w dokumentacji jest nie tylko dozwolne, wręcz do tego zachęcamy!

Teraz, gdy wszyscy jesteście podekscytowani Pythonem, będziecie chcieli zbadać go bardziej szczegółowo. Ponieważ najlepszym sposobem na nauczenie się języka jest korzystanie z niego, tutorial zaprasza do zabawy interpreterem Pythona podczas czytania.

W następnym rozdziale wyjaśniana jest mechanika używania interpretera. Są to dość przyziemne informacje, ale niezbędne do wypróbowania przykładów pokazanych później.

Reszta tutoriala wprowadza różne cechy języka i systemu Pythona poprzez przykłady, zaczynając od prostych wyrażeń, instrukcji i typów danych, poprzez funkcje i moduły, a na końcu dotykając zaawansowanych pojęć, takich jak wyjątki i klasy zdefiniowane przez użytkownika.