Использование интерпретатора Python

Запуск интерпретатора

Интерпретатор Python после установки располагается, обычно, по пути /usr/local/bin/python3.6 — на тех компьютерах, где этот путь доступен. Добавление каталога /usr/local/bin к пути поиска Unix-шелла позволит запустить интерпретатор набором команды

python3.6

прямо из шелла. [1] Поскольку выбор каталога, в котором будет обитать интерпретатор, осуществляется при его установке, то возможны и другие варианты — посоветуйтесь с вашим Python-гуру или системным администратором. (Например, путь /usr/local/python тоже популярен в качестве альтернативного расположения.)

На машинах с ОС Windows, инсталляция Python обычно осуществляется в каталог C:\Python36, но и он может быть изменён во время установки. Чтобы добавить этот каталог к вашему пути поиска, вы можете набрать в окне DOS следующую команду, в ответ на приглашение:

set path=%path%;C:\python36

При наборе символа конца файла (Control-D в Unix, Control-Z в Windows) в ответ на основное приглашение интерпретатора, последний будет вынужден закончить работу с нулевым статусом выхода. Если это не сработает — вы можете выйти из интерпретатора путём ввода следующей команды: quit().

Особенности редактирования строк в интерпретаторе включают интерактивное редактирование, подстановку из истории и автодополнение в системах, поддерживающих readline. Самый быстрый, наверное, способ проверить, поддерживается ли расширенное редактирование командной строки, заключается в нажатии Control-P в ответ на первое полученное приглашение Python. Если вы услышите сигнал — значит вам доступно редактирование командной строки — тогда обратитесь к Приложению об Интерактивном редактировании входных данных за описанием клавиш. Если на ваш взгляд ничего не произошло или отобразился символ ^P — редактирование командной строки недоступно — удалять символы из текущей строки возможно будет лишь использованием клавиши Backspace.

Интерпретатор ведёт себя сходно шеллу Unix: если он вызван, когда стандартный ввод привязан к устройству tty — он считывает и выполняет команды в режиме диалога; будучи вызванным с именем файла в качестве параметра или с файлом, назначенным на стандартный ввод — он читает и выполняет сценарий из этого файла.

Другой способ запустить интерпретатор — python -c command [arg] ..., — при её использовании поочередно выполняются инструкции(-ция) из command (как при использовании опции -c Unix-шелла). В связи с тем, что инструкции Python часто содержат пробелы или другие специальные для шелла символы, рекомендуется заключать command полностью в одинарные кавычки.

Некоторые модули Python оказываются полезными при использовании их в качестве сценариев. Они могут быть запущены в этом виде командой python -m module [arg] ..., — таким образом исполняется исходный файл модуля module (как произошло бы, если бы вы ввели его полное имя в командной строке).

При использовании файла сценария иногда полезно иметь возможность запустить сценарий и затем войти в интерактивный режим. Это может быть сделано через указание параметра -i перед именем сценария.

Все опции командной строки описаны в Командная строка и окружение.

Передача аргументов

В случае, если интерпретатору известны имя сценария и дополнительные параметры, с которыми он вызван, все они передаются сценарию в переменной argv модуля sys, представляющей собой список строк. Вы можете получить доступ к этому списку, выполнив import sys. Длина (length) списка — минимум, единица; если не переданы ни имя сценария, ни аргументы — то sys.argv[0] содержит пустую строку. Когда в качестве имени сценария передан '-' (означает стандартный ввод), sys.argv[0] устанавливается в '-'. Если используется директива -c command — sys.argv[0] устанавливается как ‘-c’. В случае, если используется директива -m module — то sys.argv[0] устанавливается равным полному имени модуля по расположению. Опции, обнаруженные после сочетаний -c command или -m не обрабатываются интерпретатором Python, но остаются в переменной sys.argv, дабы обеспечить возможность отслеживания в самой команде или в модуле.

Интерактивный Режим

Если команды считываются с tty — говорят, что интерпретатор находится в интерактивном режиме (режиме диалога). В этом режиме он приглашает к вводу следующей команды, отобразив основное приглашение (обычно это три знака «больше-чем» — >>>); в то же время, для продолжающих строк выводится вспомогательное приглашение (по умолчанию — три точки — ...). Перед выводом первого приглашения интерпретатор отображает приветственное сообщение, содержащее номер его версии и пометку о правах копирования:

$ 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.
>>>

Продолжающие строки используются в случаях, когда необходимо ввести многострочную конструкцию. Взгляните, например, на следующий оператор if:

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

Подробнее об интерактивном режиме смотрите Интерактивный режим.

Интерпретатор и его окружение

Кодировка исходных файлов

По умолчанию, исходники Python считаются созданными в кодировке UTF-8. В этой кодировке в строковых литералах, идентификаторах и комментариях могут быть использованы символы большинства языков мира — хотя что стандартная библиотека Python использует только символы ASCII для именования идентификаторов — и этому соглашению должен следовать любой переносимый код. Для корректного отображения всех этих символов, ваш редактор должен опознавать файл как закодированный в UTF-8 и должен использовать шрифт, который содержит все символы, используемые в файле.

Также можно указать другую кодировку исходных файлов. Для этого нужно добавить специальный комментарий следом за строкой #!, дабы описать кодировку исходного файла:

# -*- coding: encoding -*-

Если используется это описание — всё, что находится в этом файле будет опознаваться как имеющее соответствующую кодировку encoding вместо кодировки UTF-8. Список возможных кодировок может быть найден в Python Library Reference, в разделе про codecs.

Например, если ваш текстовый редактор не поддерживает кодировку файлов UTF-8 и настаивает на какой-либо другой кодировке, скажем, Windows-1252, можно написать:

# -*- coding: cp-1252 -*-

и продолжать использовать все знаки из набора Windows-1252 в исходных файлах. Устанавливающий (отличную от установленной по умолчанию) кодировку специальный комментарий должен являться первой или второй строкой файла.

Сноски

[1]В Unix интерпретатор Python 3.x по умолчанию не установлен с исполняемым файлом с именем python, так что он не конфликтует с одновременно установленным Python 2.x исполняемым файлом.