interpreter.md
1> **Источник:** https://python-all.ru/2.7/tutorial/interpreter.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 2. Использование интерпретатора Python89## 2.1. Запуск интерпретатора1011Интерпретатор Python обычно устанавливается как `/usr/local/bin/python` на тех машинах, где он доступен; добавление `/usr/local/bin` в переменную PATH оболочки Unix позволяет запустить его командой1213```python14python15```1617в оболочку. Поскольку выбор каталога, в котором находится интерпретатор, является опцией установки, возможны и другие расположения; уточните у местного гуру Python или системного администратора. (Например, `/usr/local/python` – популярное альтернативное расположение.)1819На компьютерах с Windows установка Python обычно производится в `C:\Python27`, хотя можно изменить это при запуске установщика. Чтобы добавить этот каталог в путь, можно ввести следующую команду в командной строке в окне DOS:2021```python22set path=%path%;C:\python2723```2425Ввод символа конца файла (`Control-D` в Unix, `Control-Z` в Windows) на основном приглашении вызывает завершение интерпретатора с нулевым статусом выхода. Если это не работает, можно выйти из интерпретатора, набрав следующую команду: `quit()`.2627Возможности редактирования командной строки интерпретатора обычно не очень развиты. В Unix тот, кто устанавливал интерпретатор, мог включить поддержку библиотеки GNU readline, которая добавляет более продвинутые возможности интерактивного редактирования и истории. Возможно, самый быстрый способ проверить, поддерживается ли редактирование командной строки – набрать `Control-P` после первого приглашения Python. Если раздастся звуковой сигнал, редактирование командной строки включено; см. Приложение [Интерактивное редактирование ввода и подстановка истории](https://python-all.ru/2.7/tutorial/interactive.html#tut-interacting) для ознакомления с клавишами. Если ничего не происходит или если выводится `^P`, редактирование командной строки недоступно; вы сможете использовать только Backspace для удаления символов из текущей строки.2829Интерпретатор работает примерно как оболочка Unix: при вызове со стандартным вводом, подключенным к tty-устройству, он читает и выполняет команды в интерактивном режиме; при вызове с аргументом – именем файла или с файлом в качестве стандартного ввода, он читает и выполняет *скрипт* из этого файла.3031Второй способ запуска интерпретатора – `python -c command [arg] ...`, который выполняет инструкции в *команде*, аналогично опции [`-c`](https://python-all.ru/2.7/using/cmdline.html#cmdoption-c) оболочки. Поскольку инструкции Python часто содержат пробелы или другие символы, имеющие специальное значение для оболочки, обычно рекомендуется заключать *команду* целиком в одинарные кавычки.3233Некоторые модули Python также полезны в качестве скриптов. Их можно вызвать с помощью `python -m module [arg] ...`, который выполняет исходный файл для *module* так, как если бы его полное имя было введено в командной строке.3435При использовании файла скрипта иногда бывает полезно запустить скрипт и после этого войти в интерактивный режим. Это можно сделать, передав [`-i`](https://python-all.ru/2.7/using/cmdline.html#cmdoption-i) перед именем скрипта.3637Все параметры командной строки описаны в [Командная строка и окружение](https://python-all.ru/2.7/using/cmdline.html#using-on-general).3839### 2.1.1. Передача аргументов4041Когда интерпретатору известно имя скрипта, оно и последующие дополнительные аргументы преобразуются в список строк и присваиваются переменной `argv` модуля `sys`. Доступ к этому списку можно получить, выполнив `import sys`. Длина списка – не менее одного; если не заданы ни скрипт, ни аргументы, `sys.argv[0]` является пустой строкой. Когда имя скрипта указано как `'-'` (означает стандартный ввод), `sys.argv[0]` устанавливается в `'-'`. При использовании [`-c`](https://python-all.ru/2.7/using/cmdline.html#cmdoption-c) *command*, `sys.argv[0]` устанавливается в `'-c'`. При использовании [`-m`](https://python-all.ru/2.7/using/cmdline.html#cmdoption-m) *module*, `sys.argv[0]` устанавливается в полное имя найденного модуля. Параметры, указанные после [`-c`](https://python-all.ru/2.7/using/cmdline.html#cmdoption-c) *command* или [`-m`](https://python-all.ru/2.7/using/cmdline.html#cmdoption-m) *module*, не обрабатываются интерпретатором Python при разборе параметров, а остаются в `sys.argv` для обработки командой или модулем.4243### 2.1.2. Интерактивный режим4445Когда команды читаются с tty, говорят, что интерпретатор находится в *интерактивном режиме*. В этом режиме он выводит приглашение для следующей команды с помощью *основного приглашения*, обычно три знака «больше» (`>>>`); для строк продолжения он выводит *вторичное приглашение*, по умолчанию три точки (`...`). Перед первым приглашением интерпретатор выводит приветственное сообщение с номером версии и уведомлением об авторских правах:4647```console48python49Python 2.7 (#1, Feb 28 2010, 00:02:06)50Type "help", "copyright", "credits" or "license" for more information.51>>>52```5354Строки продолжения необходимы при вводе многострочных конструкций. Например, взгляните на эту инструкцию [`if`](https://python-all.ru/2.7/reference/compound_stmts.html#if):5556```python57>>> the_world_is_flat = 158>>> if the_world_is_flat:59... print "Be careful not to fall off!"60...61Be careful not to fall off!62```6364Подробнее об интерактивном режиме см. в [Интерактивный режим](https://python-all.ru/2.7/tutorial/appendix.html#tut-interac).6566## 2.2. Интерпретатор и его окружение6768### 2.2.1. Кодировка исходного кода6970По умолчанию исходные файлы Python считаются закодированными в ASCII. Чтобы объявить кодировку, отличную от стандартной, необходимо добавить специальную строку комментария в качестве *первой* строки файла. Синтаксис следующий:7172```python73# -*- coding: encoding -*-74```7576где *encoding* – одно из допустимых значений [`codecs`](https://python-all.ru/2.7/library/codecs.html#module-codecs), поддерживаемых Python.7778Например, чтобы объявить использование кодировки Windows-1252, первая строка исходного файла должна быть:7980```python81# -*- coding: cp1252 -*-82```8384Одним исключением из правила *первой строки* является случай, когда исходный код начинается с [UNIX-строки «shebang»](https://python-all.ru/2.7/tutorial/appendix.html#tut-scripts). В этом случае объявление кодировки должно быть добавлено второй строкой файла. Например:8586```python87#!/usr/bin/env python88# -*- coding: cp1252 -*-89```90