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.
