2. Używanie interpretera Pythona

2.1. Wywoływanie Interpretera

Interpreter Pythona jest zazwyczaj zainstalowany jako /usr/local/bin/python3.10 na maszynach, na których jest dostępny; wstawienie /usr/local/bin w ścieżkę wyszukiwania uniksowego shella umożliwia jego uruchomienie przez wpisanie komendy:

python3.10

do shella. 1 Jako że wybór katalogu, w którym znajdzie się interpreter, jest opcją instalacji, możliwe są inne lokalizacje; sprawdź ze swoim lokalnym pythonowym guru lub administratorem systemu. (Na przykład /usr/local/python jest popularną alternatywną lokalizacją.)

Na maszynach Windows, gdzie instalowałeś Pythona z Microsoft Store, będzie dostępna komenda python3.10. Jeśli masz zainstalowany launcher py.exe, możesz użyć komendy py. Inne sposoby uruchomienia Pythona znajdziesz w Excursus: Setting environment variables.

Wpisanie znaku końca pliku (Control-D w Uniksie, Control-Z w Windowsie) w główną konsolę powoduje zakończenie interpretera z kodem wyjścia zero. Jeśli to nie zadziała, możesz opuścić interpreter wpisując następującą komendę: quit().

Funkcje edycji linii interpretera obejmują interaktywną edycję, zastępowanie historii i uzupełnianie kodu w systemach wspierających bibliotekę GNU Readline. Prawdopodobnie najszybszym sposobem sprawdzenia, czy posiadasz rozszerzone właściwości linii poleceń, jest naciśnięcie Control-P za pierwszym znakiem zachęty Pythona, który zobaczysz po jego uruchomieniu. Jeżeli zabrzęczy, masz edycję linii poleceń; zobacz wprowadzenie do klawiszy w dodatku Interaktywna edycja danych wejściowych oraz podstawianie z historii. Jeśli nic się nie zdarzy lub pojawi się ^P, to edycja linii poleceń nie jest dostępna; będziesz mógł tylko używać klawisza backspace, aby usuwać znaki z bieżącego wiersza.

Interpreter działa podobnie do uniksowej powłoki: kiedy jest wywołany ze standardowym wejściem połączonym z urządzeniem tty, czyta i wykonuje komendy interaktywnie. Gdy zostanie wywołany z argumentem w postaci nazwy pliku lub z plikiem jako standardowym wejściem, czyta i wykonuje skrypt z tego pliku.

Drugim sposobem na uruchomienie interpretera jest python -c komenda [arg] , co wykonuje polecenie (polecenia) zawarte w komendzie, analogicznie do opcji -c powłoki. Jako że polecenia Pythona często zawierają spacje lub inne znaki, które są interpretowane przez powłokę, zazwyczaj najlepiej jest umieścić komendę w całości w cudzysłowie.

Niektóre moduły Pythona są też przydatne jako skrypty. Mogą być one wywołane przy użyciu python -m moduł [arg] , co wykonuje plik źródłowy dla modułu tak jakbyś wpisał jego pełną nazwę w linii komend.

Kiedy używa się pliku skryptu, czasami przydatne jest móc uruchomić skrypt i następnie wejść w interaktywny. Można to zrobić przekazując -i przed skryptem.

Wszystkie opcje linii komend są opisane w Command line and environment.

2.1.1. Przekazywanie argumentów

Nazwa skryptu i dodatkowe argumenty, gdy są znane interpreterowi, są zamieniane w listę ciągów znaków i przypisywane zmiennej argv w module sys. Możesz dostać się do tej listy wykonując import sys. Długość listy jest przynajmniej równa jeden; gdy nie podano nazwy skryptu i żadnych argumentów wywołania, sys.argv[0], jest pustym ciągiem. Gdy nazwa skryptu przekazana jest w postaci '-' (co oznacza standardowe wejście), sys.argv[0] przyjmuje wartość '-'. Gdy zostanie użyte -c komenda, sys.argv[0], przyjmuje wartość '-c'. Gdy zostanie użyte -m moduł, sys.argv[0] przyjmie wartość pełnej nazwy znalezionego modułu. Opcje znalezione za -c komenda lub -m moduł nie są konsumowane przez przetwarzanie opcji interpretera Pythona, lecz pozostawiane w sys.argv do obsłużenia przez komendę lub moduł.

2.1.2. Tryb interaktywny

Jeżeli instrukcje są wczytywane z urządzenia tty, mówi się wtedy, że interpreter jest w trybie interaktywnym. Interpreter zachęca wtedy do podania kolejnej instrukcji wyświetlając tzw. znak zachęty, zwykle w postaci trzech znaków większości (>>>). Gdy wymaga kontynuacji instrukcji, w następnej linii wyświetla drugi znak zachęty, domyślnie trzy kropki (...). Interpreter wyświetla wiadomość powitania zawierającą jego wersję i notatkę o prawach autorskich przed wyświetleniem pierwszego znaku zachęty:

$ python3.10
Python 3.10 (default, June 4 2019, 09:25:04)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Linie kontynuacji są potrzebne przy wejściu w wielowierszową konstrukcję. Jako przykład, spójrzmy na to wyrażenie if:

>>> the_world_is_flat = True
>>> if the_world_is_flat:
...     print("Be careful not to fall off!")
...
Be careful not to fall off!

Więcej na temat trybu interaktywnego znajdziesz w Tryb interaktywny.

2.2. Interpreter i jego środowisko

2.2.1. Strona kodowa kodu źródłowego

Domyślnie pliki źródłowe Pythona są traktowane jako zakodowane w UTF-8. W tym kodowaniu znaki większości języków na świecie mogą być użyte jednocześnie w literałach ciągów znaków, identyfikatorach i komentarzach – jednak biblioteka standardowa używa jedynie znaków ASCII dla identyfikatorów, tej konwencji powinien przestrzegać każdy przenośny kod. Aby wyświetlić odpowiednio wszystkie te znaki, twój edytor musi rozpoznawać, że plik jest UTF-8 i musi używać fontu, który wspiera wszystkie znaki w tym pliku.

Aby zadeklarować kodowanie inne niż domyślne, powinno się dodać specjalną linię komentarza jako pierwszą linię pliku. Składnia jest następująca:

# -*- coding: encoding -*-

gdzie encoding jest jednym z poprawnych codecs wspieranych przez Pythona.

Na przykład aby zadeklarować używanie kodowania Windows-1252, pierwszą linią twojego kodu źródłowego powinno być:

# -*- coding: cp1252 -*-

Jedynym wyjątkiem dla reguły pierwszej linii jest, kiedy kod źródłowy zaczyna się uniksową linią „shebang”. W tym przypadku deklaracja kodowania powinna być dodana jako druga linia pliku. Na przykład:

#!/usr/bin/env python3
# -*- coding: cp1252 -*-

Przypisy

1

Na Uniksie, interpreter Pythona 3.x nie jest domyślnie zainstalowany z plikiem wykonywalnym o nazwie python, aby nie konfliktował on z jednocześnie zainstalowanym plikiem wykonywalnym Pythona 2.x.