R-15-t.doc

(287 KB) Pobierz
Szablon dla tlumaczy

15. Python

Wprowadzenie

And now for something completely different...

A teraz coś zupełnie z innej beczki...

     Latający Cyrk Monthy Pythona

Witajcie w Pythonie!

Python jest językiem programowania wysokiego poziomu, który jest zorientowany obiektowo, zawiera dynamiczne typy, jest przeznaczony na wiele platform systemowych, skalowalny oraz ma otwarty dostęp do kodu źródłowego. Python jest językiem, który dobrze odwzorowuje procesy myślowe współczesnego wyrafinowanego programisty. Wyobraźmy sobie skalowalny i czytelny Perl lub Tcl, bogaty w procedury i zorientowany obiektowo Scheme , Ruby ze składnią uproszczoną do minimum oraz interpreter wyższego poziomu dla Javy. Wyobraźmy sobie łatwość w użyciu i utrzymaniu oraz zwiększoną wydajność. Poskładajmy razem te cechy a otrzymamy przybliżoną charakterystykę Pythona.

Po co uczyć się innego języka programowania? Można być, podobnie jak autor tego rozdziału, kolekcjonerem oprogramowania a wtedy odpowiedź nasuwa się sama. Ale co gdy jest się zatwardziałym programistą C/C++, zadowolonym z wybranego języka? Python nie może doskonale zastąpić języka C ani C++. Raczej jest kolejnym narzędziem w skrzynce narzędziowej programisty. Niekiedy Python stanowi dobrą alternatywę dla C, a czasami te języki się uzupełniają. Python jest często bezpośrednią konkurencją dla Perla, Tcl, JavaScript i VisualBasic. Jeśli rozważa się użycie podobnego narzędzia i jest się nieszczególnie zadowolonym z własnego bieżącego języka, to prawdopodobnie Python będzie właściwym wyborem.

Wszyscy programiści powinni dysponować pewnym zestawem narzędzi. Tak zwane „języki skryptowe” są tradycyjnie używane do małych zadań, sklejania razem innych programów oraz zautomatyzowania procesów. Python jest unikatowy jeśli chodzi o skalowalność, począwszy od małych skryptów, a skończywszy na dużych systemach. Wybór języka programowania to w dużej mierze sprawa osobista. Ale Czytelnik powinien zastanowić się, który z tych języków odzwierciedla najlepiej jego procesy myślowe? Autor bynajmniej nie zakłada możliwości nawrócenia Czytelnika, który zna już kilka języków programowania. Wręcz przeciwnie, celem autora jest przedstawienie Pythona — języka, który nie tylko zawiera najlepsze cechy całej różnorodności innych języków, ale także wprowadza kilka nowych własnych idei, tworząc niesamowicie elegancką, spójną i użyteczną całość.

Z pomocą Pythona można wykonać zadanie szybciej i łatwiej. Można wypróbować pomysły każdego formatu z minimalnym nakładem programowania. Można modelować duże i małe systemy, doskonaląc projekt i potwierdzając zamysł, zanim poświęci się czas wymagany do zaprogramowania tego w C. Całkiem możliwe, że takie prototypy okażą się co najmniej wystarczające. Python dodaje skrzydeł i uatrakcyjnia pracę.

Nigdy nie wyszedłem poza zapoczątkowanie struktury danych w C++, nigdy nie posunąłem się dalej, niż sprawdzenie jak by to działało w Scheme. Jedno popołudnie z Pythonem wystarczyło, abym odkrył, że mój pomysł jest kompletną klapą. Byłem zadowolony, że użyłem Pythona, ponieważ przekonanie się, że mój pomysł to gniot kosztowało mnie tylko jedno popołudnie.

— Moshe Zadka w comp.lang.python, 13 maja 2000.

Ten rozdział jest przyspieszonym kursem wprowadzenia do języka, wystarczająco bogatym treściowo, aby pobudzić na niego apetyt oraz wystarczająco głębokim, aby umożliwić jego praktyczne użycie. Znajdzie się tu omówienie cech wyróżniających Python na tle innych języków oraz powodów, dla których Python stanowi cenne uzupełnienie narzędzi każdego programisty. Nie jest to ani wprowadzenie do programowania, ani też wyczerpujący leksykon.

Python został stworzony przez Guido van Rossum (w skrócie Guido lub GvR), zaś jego pierwsza wersja została wydana w 1991.Nazwa została zaczerpnięta od brytyjskiej trupy komediowej Monty Python. Korzenie Pythona sięgają ABC, języka dydaktycznego z niewielkimi praktycznymi osiągnięciami, który Guido pomógł stworzyć w latach 80-tych ubiegłego wieku w Amsterdamie. Guido zaczerpnął najlepsze cechy języka ABC oraz Modula-3, wziął lekcje z niedociągnięć tych i wielu innych języków, a następnie, mając na uwadze czytelność i użyteczność, wykorzystał swoje doświadczenia i stworzył wspaniały (w naszej skromnej opinii) język.

Poniżej Python zostanie porównany z językiem C, Perlem (bezdyskusyjnie najbliższym konkurentem Pythona) oraz innymi powszechnymi językami programowania. Wskazane zostaną wady i zalety Pythona, zilustrowane sztuczki Pythona oraz zdemaskowane pułapki Pythona.

Zatem, w jakim sensie Python jest inny? Niechaj Czytelnik czyta dalej!

Cechy

Cechy Pythona są przeważają na korzyść sprawności i skuteczności programisty, niekiedy kosztem sprawności programu. Innymi słowy, programy w Pythonie są szybsze do napisania, ale czasami wolniejsze w działaniu, niż równoważne im programy napisane w języku C. Czas programistów jest cenny zarówno w kategoriach finansowych, jak i twórczych. W kategoriach finansowych Python jest błogosławieństwem dla pracodawców, doceniających fakt, że programiści, którzy potrafią więcej zrobić w krótszym czasie zrekompensują z nawiązką koszty szybszego sprzętu komputerowego. Jeśli zaś chodzi o kreatywność, to niechaj Czytelnik sam odpowie sobie na pytanie, kiedy ostatni raz odłożył na później lub przekazał komuś innemu jakiś projekt, ponieważ jego realizacja miała trwać zbyt długo? A co by było, gdyby ten projekt miał zająć o 90 % mniej czasu — czy wtedy też Czytelnik zrezygnowałby z jego wykonania?

Poniżej są podane niektóre cechy, dzięki którym Python staje się jednym z najmodniejszych i najpopularniejszych języków programowania.

Język bardzo wysokiego poziomu (Very High Level Language — VHLL)

Często określane jako „wykonywalny pseudokod”, programy w Pythonie są odzwierciedleniem idei wysokiego poziomu programisty. Szczegóły natury technicznej, niskiego poziomu, takie jak alokacja i odzyskiwanie zajmowanej pamięci są obsługiwane przez samego Pythona — programista nie musi się o nie martwić.

Pojęcie wysokiego poziomu oznacza koncentrację uwagi na projekcie w całości i zlecanie szczegółowych zadań do wykonania. Tym właśnie zajmuje się Python. Inteligentna składnia redukuje ilość zawiłego kodu. Interpreter poznaje strukturę programu poprzez badanie fizycznej struktury kodu — ograniczniki bloków kodu nie są potrzebne. Moduły i klasy dostarczają wyjątkowo łatwo dostępnych środków do realizacji abstrakcji, hermetyzacji i modularności.

Interpretowany

Programy Pythona są interpretowane, a nie kompilowane, przynajmniej w tradycyjnym znaczeniu kompilatora, przekształcającego kod źródłowy C na kod maszynowy (więcej o tym poniżej). Nie ma cyklu: „edycja, kompilacja, konsolidacja oraz uruchomienie”. Zamiast tego jest: „edycja, a potem uruchomienie”. Wykorzystując dynamiczne ładowanie oraz trochę planując można uzyskać cykl: „uruchomienie, edycja oraz ponowne załadowanie zmienionej części do uruchomionego procesu bez jego zatrzymania”. Interpreter Pythona czyta pliki źródłowe (zwane „modułami”, które zwykle mają rozszerzenie nazwy .py), zamienia je na przenośny kod bajtowy oraz je wykonuje, interpretując ten kod bajtowy (tak jak to robią Java i Perl, ale na wyższym poziomie).

Czasami określa się Pythona mianem języka skryptowego — to zależy od przyjętej definicji. Podobnie jak skrypty powłoki lub programy Perla, pliki źródłowe Pythona i ich wersje wykonywalne to jest (lub może być) to samo. Ale to czego brak w Pythonie to, znane z innych języków skryptowych, ograniczenia oraz wyboiste wrażenie spójności. Bez wątpienia Python jest pełnokrwistym językiem programowania ogólnego zastosowania.

Czysta, prosta i potężna składnia

Kod w Pythonie jest niezwykle łatwy do napisania, odczytania i pielęgnowania. Pozostaje czytelny tygodnie, a nawet lata po tym, jak został napisany. W odróżnieniu od innych języków programowania, programy w Pythonie mogą być czytane i rozumiane przez programistów nie znających Pythona, a nawet często przez ludzi, którzy nie zajmują się programowaniem. Python jest także doskonałym językiem dydaktycznym, z uwagi na niemal całkowity brak szczegółów, które czynią inne języki trudnymi do poznania przez nowicjuszy. Twórca Pythona wystąpił nawet z inicjatywą opracowania dla studentów kierunków innych niż informatyka, kursu nauczania programowania, który nazwano w skrócie CP4E (Computer Programming Fo(u)r Everybody — programowanie komputerowe dla każdego).

Składnia Pythona jest oszczędna. Brak jej całego tego zgiełku znaków, z którego powodu cierpią inne języki, takich jak średniki na końcu każdej instrukcji, specjalne symbole wyłuskania, nawiasy klamrowe czy pary begin-end dla zagnieżdżonych bloków kodu. Python w porównaniu z Perlem jest ożywczo spartański.

Jedna cecha składni Pythona wyróżnia się znacznie ponad wszystkie inne: użycie znaczących białych znaków dla określenia struktury blokowej. W odróżnieniu od niektórych form wskaźników początku i końca bloku ({ i } w Perl, C i Java; begin-end w Pascal; if-fi, case-esac i for-done w językach powłok), hierarchia bloków kodu w Pythonie jest zaznaczona przez stopień wcięcia owych bloków kodu. U doświadczonych programistów na ogół budzi to niechęć. Niektórzy z nich dojrzewają, by to pokochać, inni nigdy tego nie akceptują. W świadomości wielu, Python jest zdefiniowany poprzez tę cechę.

Trudność polega na stworzeniu języka, który ma tyle sensu dla innej istoty ludzkiej co dla maszyny. (...) Python znacznie bardziej niż Perl podkreśla fakt, że programista nie pisze programu tylko po to, aby go czytał kompilator. Pisze program też po to, aby go czytali koledzy po fachu.

— Guido van Rossum, twórca Pythona, w wywiadzie Sama Williamsa na forum BeOpen.com

Z powodu swej prostoty składnia Pythona ma także bardzo duże możliwości. Na ogół równoważne zadanie wymaga znacznie mniej kodu Pythona niż kodu języka C. Mniej wierszy kodu, to również mniej błędów, większa wydajność i znacznie mniej frustracji.

„Małe” języki mają tendencję do zaczynania jako „piękne i gładkie”, a potem, w miarę jak stają się bardziej popularne, obrastają w niezdarne i nieprzyjemne dla oka dodatki, zwłaszcza jeśli są rozszerzane w obszarach, których oryginalni autorzy nie przewidzieli. Im dłużej istnieje jakiś język, tym bardziej staje się „pryszczaty”. Perl jest językiem, który wyłonił się jako konglomerat innych języków zawierający wszystko, nawet  kuchenny zlew i od tej pory rozrósł się bardzo. Python zaczął istnienie jako język oszczędny — zmiany w składni rdzenia języka zostały zaplanowane i są celowo powolne. Przyszłe wersje Pythona mogą nawet zmniejszyć złożoność tego języka.

Zorientowany obiektowo

Zorientowanie obiektowe nie jest doczepione do Pythona na siłę, po refleksji poniewczasie — ten język jest zorientowany obiektowo na wskroś. W Pythonie, wszystko jest obiektem. Implementacja klas i obiektów jest znacznie prostsza w Pythonie niż w C i mniej rozwlekła niż w Smalltalk. Prostota udostępnia programowanie obiektowo zorientowane, odsłaniając sedno natury zorientowania obiektowego, bez przemyślnych pułapek, przesłaniających główną ideę.

Dynamiczne określanie typu

W języku C zmienne mają typ statyczny. Najpierw trzeba zadeklarować typ zmiennej, a ta zmienna może zawierać dane tylko zadeklarowanego typu. W języku Python, zmienne mają typ dynamicznie określany. Zmienne są tworzone w chwili przypisana im jakiejś wartości, a ich typ zależy od danych, które zawierają. Istniejąca zmienna może mieć przypisaną nową wartość, nowego typu. Stosowane z uwagą i zrozumieniem dynamiczne określanie typu prowadzi do imponującego poszerzenia możliwości programowania. Niedbałe używanie tej cechy może być głównym źródłem błędów programu.

Duża biblioteka standardowa

Rdzeń języka Python jest bardzo oszczędny i udostępnia znacznie mniej możliwości niż jego odpowiednik dla Perla. Jednakże standardowa dystrybucja Pythona zawiera dużą liczbę i różnorodność gotowych i łatwych w użyciu modułów, z własnymi programami. Moduły biblioteczne zawierają: operacje na łańcuchach, wyrażenia regularne, dostęp do plików i systemu operacyjnego, wątki, gniazda, dostęp do baz danych, protokoły Internetu a nawet dostęp do wewnętrznych funkcji analizy składniowej Pythona.

Obsługa wielu platform

Python został przeniesiony na prawie każdą platformę sprzętową oraz na prawie każdy dostępny system operacyjny, w tym na Linux (oczywiście!), UNIX, MacOS i Windows. Moduły ogólnego przeznaczenia, jeśli zostały właściwie napisane, będą działać bez modyfikacji na wielu platformach.

Mnogość implementacji

Poza standardową implementacją Pythona, napisaną w C (i powszechnie nazywaną CPython), istnieje jeszcze JPython oraz Stackless Python (Python bez stosu). JPython jest w 100% implementacją w Pure Java, która działa na platformach Java i zapewnia bezproblemową integrację z klasami Java. Stackless Python usuwa konieczność korzystania ze stosu języka C (stąd nazwa tej implementacji), umożliwiając tym samym uruchomienie Pythona na platformach o ograniczonych zasobach (takich jak komputery kieszonkowe), a także implementuje wydajne kontynuacje.

Duże możliwości rozbudowy

Python bardzo dobrze się skaluje. Proste skrypty 10-wierszowe są łatwe do napisania i do czytania. Duże systemy z tysiącami lub nawet milionami wierszy kodu są możliwe do stworzenia i pielęgnacji. Porównajmy to z Perlem, największym konkurentem Pythona. Perl jest wspaniały do pisania programów o długości od jednego do dziesięciu wierszy, ale załamuje się przy setkach czy tysiącach wierszy kodu, wymaganych przez złożone systemy. Można wiele zrobić z jednowierszowym programem w Perl, ale jakim kosztem! Domniemane zachowanie, niewyrazista składnia, magiczne zmienne czynią programy w Perlu trudnymi do odczytania dla wszystkich, z wyjątkiem znawców Perla. Nawet znawcy Perla mają tym większe kłopoty ze zrozumieniem i pielęgnowaniem programu, im bardziej się on rozrasta.

Jako były programista Perla, mówię z własnego doświadczenia. Napisałem wiele tysięcy wierszy kodu Perla. Chociaż sądzę, że było to dobrze napisane, wzdragam się na myśl o konieczności wrócenia do napisanych kodów i dokonywania przeróbek w jakimkolwiek ich  fragmencie. Mimo, że można napisać nieczytelny kod w Pythonie, to jednak sądzę, że z tym językiem łatwiej niż z jakimkolwiek innym przeze mnie spotkanym, osiągnąć klarowność i przejrzystość kodu. W moim mniemaniu każde narzędzie ułatwiające innym programistom zrozumienie opracowanego kodu, wzmocni jego witalność i tym samym żywotność naszej, włożonej w to, pracy.

Python implementuje hermetyzację na wielu poziomach. Funkcje zamykają w kapsułki kod programu wielokrotnego użytku, klasy łączą dane (atrybuty) wraz ze stowarzyszonymi z nimi funkcjami (metody), moduły zawierają pokrewne klasy i funkcje, a pakiety są kapsułkami dla systemów.

Jeśli oryginalny kod Pythona jest zbyt wolny lub nie może dosięgnąć zestawu funkcji niskiego poziomu, to można napisać w języku C moduły rozszerzenia. Jeśli potrzebna jest aplikacja do pisania skryptów, to można w nią wbudować Pythona (zobacz rozdział 17).

Otwarty dostęp do kodu źródłowego

Python jest całkowicie bezpłatny i dopuszczony do użytku, modyfikacji, redystrybucji, użytku komercyjnego, a nawet odsprzedawania bez ukrytych zobowiązań (poza obowiązkiem do zamieszczenia informacji o prawach autorskich). Kod źródłowy Pythona jest do pobrania za darmo.

Rozrywka!

Humor jest prawie obowiązkowy we wszelkich dyskusjach o Pythonie — języku „poważnie niepoważnym”, który ma przecież swe korzenie w komedii. W opisie cech i zestawu funkcji innych języków używa się często w przykładach nazw foo i bar. W Pythonie odpowiednikami są spam (mielonka) i eggs (jaja) z powodów, które jedynie prawdziwy zwolennik Monty Pythona może podać. Odnośniki do Monty Pythona są często wykorzystywane dla nazw aplikacji, takich jak przeglądarka WWW Grail, (przestarzały) moduł ni, a także program narzędziowy ArgumentClinic.

Chociaż nazwa Python nie wywodzi się bezpośrednio od nazwy bardzo długiego węża z rodziny dusicieli o masywnym ciele, to wężowych odnośników też jest pod dostatkiem, takich jak konstruktor Boa Constructor GUI i baza danych zasobów Pythona Vaults of Parnassus. W dodatku 'Py' jest używane jako przedrostek i przyrostek w nazwach modułów i aplikacji: PyUnit, NumPy.

Dołączając się do chóru Pytonofilów (ang. Pythonistas) (określenie miłośników Pythona) chciałoby się zawołać:

Dzięki Ci Guido za Pythona!

Python: odpowiednie narzędzie do pracy

Python to język programowania ogólnego przeznaczenia, użyteczny na wiele sposobów i na wielu płaszczyznach. Przykłady uwzględniają: administrację systemową, przetwarzanie tekstu i danych (XML, HTML, itd.), środowisko szybkiego opracowywania aplikacji (RAD — Rapid Application Development) wraz z graficznymi interfejsami użytkownika (GUIs — Graphic User Interfaces), programowanie aplikacji naukowych i obliczeniowych i to jeszcze nie jest wszystko. Python jest akceptowany przez środowisko zwolenników otwartego dostępu do kodów źródłowych, z uwagi na jego klarowność, przenośność i możliwości.

...ale nie każdej!

Będąc językiem bardzo wysokiego poziomu (VHLL), Python nie jest odpowiedni do programowania sterowników urządzeń ani jąder systemów operacyjnych. Będąc językiem interpretowanym, Python nigdy nie dorówna pod względem szybkości kompilowanemu językowi C. Jednakże moduły rozszerzenia, skompilowane w C a sterowane przez kod Pythona, stanowią doskonałe pogodzenie nadzwyczaj szybkiego kodu z nadzwyczaj szybkim środowiskiem programowania. Monolityczne oraz wykonywalne programy binarne nie są mocną stroną Pythona, chociaż (jeśli Czytelnik naprawdę bardzo by chciał) sposoby, aby przynajmniej w przybliżeniu to osiągnąć.

Instalacja Pythona

Być może Python jest już zainstalowany w systemie Czytelnika. Kilka dystrybucji Linuksa używa Pythona dla swoich skryptów instalacyjnych, a także większość z nich zawiera zainstalowany fabrycznie Python. Aby to sprawdzić można spróbować uruchomić interaktywny interpreter Pythona. Jeśli Python jest już zainstalowany, to powinno się otrzymać coś mniej więcej takiego:

 

$ python

Python 1.5.1 (#1, Apr 30 1998, 11:51:50) [GCC egcs-2.90.25 980302 (egc on linux2

Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam

>>>

 

Jeśli tego nie ma, lub jeśli istniejąca wersja Pythona nie jest dość aktualna (co najmniej jak powyżej datowany Python, dołączony do dystrybucji Linuksa, która posiada autor), to można albo pobrać już skompilowaną wersję binarną albo skompilować we własnym zakresie, korzystając z najnowszych kodów źródłowych. Skompilowane pakiety binarne są dostępne dla Red Hat Linux, Debian GNU/Linux oraz innych dystrybucji Linuksa z powszechnie dostępnych witryn WWW z archiwami (ang. archive sites). Zainstalowanie takich pakietów powinno być trywialne.

Jeśli nie można znaleźć kompatybilnego pakietu binarnego, lub dostępne wersje binarne nie mają odpowiadającego użytkownikowi zbioru opcjonalnych zestawów funkcji, to trzeba skompilować kody źródłowe. Python kompiluje się i instaluje łatwo i bez zawiłości. Kod źródłowy jest dostępny ze strony głównej WWW języka Python, http://www.python.org. W chwili pisania tych słów, najnowsza stabilna wersja Pythona to 1.5.2 (do pobrania jako py152.tgz), a wersja 2.0 (ostatnio utworzona z wersji 1.6). Jakaś nowsza może być już dostępna w czasie, kiedy Czytelnik to czyta. My zainstalujmy Pythona w wersji 1.5.2.

Najpierw, trzeba rozpakować plik z zarchiwizowanym kodem źródłowym (ang. source tarball):

 

$ tar –zxpf py152.tgz

$ cd. Python-1.5.2

 

Trzeba koniecznie przeczytać zawartość pliku README z katalogu najwyższego poziomu. Zawiera on instrukcje konfiguracji, instrukcje instalacji dla specyficznych platform oraz informację na temat rozwiązywania problemów.

 

$ ./configure

 

Polecenie configure wyprodukuje dużo informacji wyjściowej przy sprawdzaniu dostępnych cech w systemie. Jest ono dość tolerancyjne i powinno zakończyć konfigurację na dowolnym systemie Linux. Konfiguracja obejmuje kilka opcji, z których najczęściej wykorzystywaną jest opcja –with-thread włączająca implementację obsługi wątków. Python standardowo nie obsługuje procesów wielowątkowych, ponieważ wiąże się to ze spadkiem wydajności, nawet jeśli akurat nie korzysta się z obsługi wątków.

Zanim faktycznie przystąpi się do zbudowania interpretera, można przeprowadzić edycję Modules/Setup (należy w razie potrzeby skopiować Modules/Setup.in) aby uaktywnić opcjonalne moduły biblioteczne i zestawy funkcji do interakcyjnego interpretera Pythona. Warto jest uaktywnić przynajmniej moduły readline, termios oraz curses. Jeśli Tcl i Tk są już zainstalowane, lub nie ma się nic przeciwko ich instalacji w pierwszej kolejności, to powinno się uaktywnić również moduł _tkinter. Plik Modules/Setup zawiera informacje o każdym z opcjonalnych modułów.

Cały kod przedstawiony w tym rodziale będzie wymagał jedynie modułów zainstalowanych przez domyślny Module/Setup.

Jesteśmy teraz gotowi do zbudowania interpretera:

 

$ make

[obfity wydruk z polecenia make]

$ make test

[wydruk testowy]

 

Polecenie make test wykonuje zestaw programów testowych, które sprawdzają, czy interpreter dobrze się spisuje. Niektóre testy mogą być opuszczone lub mogą zakończyć się niepowodzeniem z powodu braku opcjonalnych cech, ale to normalne.

Przechodzimy teraz do zainstalowania Pythona w jego domyślnym katalogu, /usr/local/bin/python (w istocie program wykonywalny python jest dowiązaniem zwykłym do python1.5) wraz z bibliotekami w /usr/local/lib/python1.5/:

 

$ su

Password: [tutaj hasło użytkownika root]

# make install

[wydruk instalacyjny]

# exit

 

Jeśli konfiguruje się ponownie przed przebudowaniem, to należy zrobić porządek z plikami pozostawionymi przez poprzedni proces kompilacji i konsolidacji:

 

$ make clean

$ ./configure –with-thread     # przykładowo

$ make

...

 

W pewnych przypadkach, należy dokonać bardziej gruntownych porządków przed przebudowaniem. Najpierw przechowajmy kopię zmodyfikowanego pliku Modules/Setup:

 

$ mv Modules/Setup Modules/Setup.old

 

Następnie sprowadzamy katalog, w którym budujemy interpreter, do stanu wyjściowego sprzed konfiguracji:

 

$ make distclean

 

Po ponownym uruchomieniu konfiguracji (być może z opcjami), należy skopiować przechowany plik z powrotem na Modules/Setup:

 

$ ./configure –with-thread     # przykładowo

$ cp Modules/Setup.old Modules/Setup

$ make

...

 

Uruchomienie Pythona

Jest kilka sposobów, aby wykonać kod Pythona. Wybór zależy od tego, jak blisko chce się obcować z samym Pythonem.

Interakcyjny interpreter

Najprościej uruchomić Pythona wpisując:

 

$ python

 

po znaku zachęty powłoki. To powoduje wywołanie interpretera Pythona, pokazując przy tym jego wersję, platformę oraz informację o prawach autorskich:

 

$ python

Python 1.5.2 (#4, Jun  3 2000, 14:20:48) [GCC egcs-2.90.25 980302 (egc-1.0.2 pr on linux2

Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam

>>>

 

Znak >>> jest zachętą pierwszego poziomu Pythona, natomiast wielokropek ... jest używany jako znak zachęty dla zagnieżdżonego kodu. Dla zilustrowania pojęć Pythona w bardzo szerokim zakresie będzie tu używany interakcyjny interpreter.

Od tego momentu można wpisywać dowolne instrukcje lub wyrażenia Pythona, takie jak obowiązkowy program „Hello world” („Witaj świecie”) w stylu charakterystycznym dla Pythona:

 

>>> print "Spam!"

Spam!

>>>

 

W interpreterze interakcyjnym, kiedy wprowadzamy samo wyrażenie (tzn. ani przypisanie ani też instrukcja print) to jego reprezentacja zostanie powtórzona przez interpreter:

 

>>> "spam, egg, spam, spam, bacon and spam"

'spam, egg, spam, spam, bacon and spam'

>>>

 

Cecha ta będzie używana wiele razy w pozostałej części tego rozdziału.

By opuścić interpreter można użyć Ctrl D lub wpisać poniższe:

 

>>> import sys

>>> ...

Zgłoś jeśli naruszono regulamin