2. Używanie Interpretera Pythona
********************************


2.1. Wywoływanie Interpretera
=============================

The Python interpreter is usually installed as
"/usr/local/bin/python3.6" on those machines where it is available;
putting "/usr/local/bin" in your Unix shell's search path makes it
possible to start it by typing the command:

   python3.6

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ą.)

On Windows machines, the Python installation is usually placed in
"C:\Python36", though you can change this when you're running the
installer.  To add this directory to your path,  you can type the
following command into the command prompt in a DOS box:

   set path=%path%;C:\python36

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()".

The interpreter's line-editing features include interactive editing,
history substitution and code completion on systems that support
readline.  Perhaps the quickest check to see whether command line
editing is supported is typing "Control-P" to the first Python prompt
you get.  If it beeps, you have command line editing; see Appendix
Interactive Input Editing and History Substitution for an introduction
to the keys.  If nothing appears to happen, or if "^P" is echoed,
command line editing isn't available; you'll only be able to use
backspace to remove characters from the current line.

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
pojedynczym 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.6
   Python 3.6 (default, Sep 16 2015, 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.
