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.