Документация Python неофициальный перевод
Содержание страницы

2. Использование интерпретатора PythonUsing the Python Interpreter

2.1. Запуск интерпретатораInvoking the Interpreter

Интерпретатор Python обычно устанавливается в /usr/local/bin/python3.4 на тех машинах, где он доступен; если добавить /usr/local/bin в путь поиска вашей оболочки Unix, его можно будет запустить, введя команду:

python3.4

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

На компьютерах с Windows установка Python обычно выполняется в каталог C:\Python34, хотя вы можете изменить его при запуске установщика. Чтобы добавить этот каталог в путь, можно ввести следующую команду в командной строке (в окне DOS):

set path=%path%;C:\python34

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

Возможности редактирования командной строки интерпретатора включают интерактивное редактирование, подстановку истории и автодополнение кода в системах, поддерживающих readline. Возможно, самый быстрый способ проверить, поддерживается ли редактирование командной строки – набрать Control-P в первом приглашении Python. Если последует звуковой сигнал, редактирование командной строки включено; обратитесь к приложению Interactive Input Editing and History Substitution за описанием клавиш. Если ничего не происходит или выводится ^P, редактирование командной строки недоступно; вы сможете удалять символы только с помощью backspace.

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

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

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

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

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

2.1.1. Передача аргументовArgument Passing

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

2.1.2. Интерактивный режимInteractive Mode

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

$ python3.4
Python 3.4 (default, Mar 16 2014, 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!

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

2.2. Интерпретатор и его окружениеThe Interpreter and Its Environment

2.2.1. Кодировка исходного кодаSource Code Encoding

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

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

# -*- coding: encoding -*-

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

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

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

и при этом использовать все символы набора Windows-1252 в исходных файлах. Специальный комментарий о кодировке должен находиться в первой или второй строке файла.

Сноски

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