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


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

The Python interpreter is usually installed as
"/usr/local/bin/python3.12" 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.12

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

On Windows machines where you have installed Python from the Microsoft
Store, the "python3.12" command will be available. If you have the
py.exe launcher installed, you can use the "py" command. See Excursus:
Setting environment variables for other ways to launch Python.

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

The interpreter's line-editing features include interactive editing,
history substitution and code completion on systems that support the
GNU Readline library. 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 Интерактивное редактирование ввода и подстановка истории
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.

Интерпретатор работает примерно так же, как оболочка 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" *command*, для "sys.argv[0]"
устанавливается значение "'-c'". Когда используется "-m" *module*,
"sys.argv[0]" устанавливается в полное имя найденного модуля.
Параметры, обнаруженные после "-c" *command* или "-m" *module*, не
обрабатываются самим интерпретатором Python при разборе параметров, а
остаются в "sys.argv" для обработки командой или модулем.


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

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

   $ python3.12
   Python 3.12 (default, April 4 2022, 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.
