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

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

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

    python3.13

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

На компьютерах с Windows, на которых вы установили Python из Microsoft Store, `python3.13` команда будет доступна. Если у вас установлена ​​:ref:программа запуска py.exe <launcher>, вы можете использовать команду `py`. См. Excursus: Setting environment variables, чтобы узнать о других способах запуска Python.

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

Возможности построчного редактирования интерпретатора включают интерактивное редактирование, подстановку из истории команд и автодополнение кода на большинстве систем. Возможно, самый быстрый способ проверить, поддерживается ли редактирование командной строки, — ввести слово в приглашении Python и нажать стрелку влево (или `Control`-`b`). Если курсор перемещается, значит редактирование командной строки доступно; см. Приложение Интерактивное редактирование ввода и подстановка истории, где приводится введение в используемые сочетания клавиш. Если же ничего не происходит или отображается последовательность вроде `^[[D` или `^B`, значит редактирование командной строки недоступно; в этом случае вы сможете использовать только клавишу backspace для удаления символов в текущей строке.

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

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

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

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

Все параметры командной строки описаны в Command line and environment.

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

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

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

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

    $ python3.13
    Python 3.13 (default, April 4 2023, 09:25:04)
    [GCC 10.2.0] 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. Интерпретатор и его окружение

### 2.2.1. Кодирование исходного кода

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

Чтобы указать кодировку, отличную от используемой по умолчанию, в качестве первой строки файла следует добавить специальную строку комментария. Синтаксис следующий:

    # -*- coding: encoding -*-

где encoding — один из допустимых `codecs`, поддерживаемых Python.

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

    # -*- coding: cp1252 -*-

Единственное исключение из правила «первая строка» — это когда исходный код начинается с UNIX «shebang» line. В этом случае объявление кодировки должно быть добавлено во вторую строку файла. Например:

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

Примечания

[1]

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