Интерпретатор языка Python

Обработка ошибок

В случае появления ошибки интерпретатор выводит сообщение об ошибке, завершая его стеком вызовов. В интерактивном режиме он снова возвращается в состояние приглашения для ввода команд; если ввод происходит из файла — интерпретатор выходит с ненулевым статусом, сразу после распечатки стека вызовов. (Исключения, обрабатываемые в блоке except оператора try в этом контексте не считаются ошибками.) Некоторые ошибки исключительно фатальны и вызывают собой принудительное завершение работы с ненулевым статусом — это применимо к внутренним противоречиям языка и к некоторым случаям нехватки памяти. Все сообщения об ошибках выводятся в стандартный поток ошибок (error stream). Обычный вывод исполняемых команд направляется в стандартный вывод.
Нажатие клавиш прерывания процесса (обычно Ctrl-C или DEL), в ответ на приглашение в основном или вспомогательном режиме, отменяет ввод и возвращает вас к основному приглашению. Символ прерывания, набранный во время выполнения какой-либо команды порождает исключение KeyboardInterrupt, которое, в свою очередь, может быть перехвачено оператором try.

Исполняемые сценарии на Python.

На Unix-системах семейства BSD сценарии на Python могут быть сделаны исполняемыми, также как и шелл-сценарии, путём добавления следующей строки
[code lang=»Python»]#! /usr/bin/env python3.6[/code]
(предполагается, что интерпретатор может быть найден по одному из путей, указанных в пользовательской переменной PATH) в начало сценария и установки файла в исполняемый режим. Символы #! должны быть первыми символами в файле. На некоторых платформах строка должна оканчиваться символом конца строки в стиле Unix (‘\n’), а не в стиле Windows (‘\r\n’). Заметьте, что символ решётки ‘#’ используется в Python для указания начала комментария.
Исполняемый режим (или разрешение на исполнение) может быть установлен сценарию использованием команды chmod:
[code lang=»Python»]$ chmod +x myscript.py[/code]
У систем с операционной системой Windows нет такого понятия, как исполняемый режим. Установщик Python автоматически связывает файлы .py с файлом python.exe, таким образом двойной клик на файле Python запустит его в виде сценария. Расширение может быть и .pyw в случае, если окно консоли (которое, обычно, отображается) при запуске сценария подавляется.

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

По умолчанию, исходники Python считаются созданными в кодировке UTF-8. В этой кодировке в строковых литералах, идентификаторах и комментариях могут быть использованы символы большинства языков мира — учитывая то, что стандартная библиотека Python использует символы ASCII для именования идентификаторов — и этому соглашению должен следовать любой переносимый код. Для корректного отображения всех этих символов, ваш редактор должен опознавать файл как закодированный в UTF-8 и должен использовать шрифт, который содержит все символы, используемые в файле.
Также, есть возможность указать другую кодировку для исходных файлов. Для этого нужно добавить специальный комментарий следом за строкой #!, дабы описать кодировку исходного файла:
[code lang=»Python»]# -*- coding: encoding -*-[/code]
Если используется это описание — всё, что находится в этом файле будет опознаваться как имеющее соответствующую кодировку encoding, а не UTF-8.

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

[code lang=»Python»]# -*- coding: cp-1252 -*-[/code]

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

Интерактивный файл запуска.

Если вы используете Python интерактивно — часто бывает удобным выполнить некоторые стандартные команды перед запуском интерпретатора. Вы можете сделать это, установив переменную окружения с именем PYTHONSTARTUP равной имени файла, содержащего ваши команды запуска. Способ схож с использованием файла .profile в Unix-shell.
Этот файл читается только в интерактивных сессиях, но не в случае считывания команд из сценария, и не в случае, если /dev/tty назначен как независимый источник команд (который в других случаях ведет себя сходно интерактивным сессиям). Файл исполняется в том же пространстве имён, что и исполняемые команды — поэтому объекты и импортированные модули, которые он определяет могут свободно использоваться в интерактивной сессии. Также в этом файле вы можете изменить приглашения: sys.ps1 и sys.ps2.
Если вы хотите прочитать дополнительный файл запуска из текущего каталога — вы можете использовать код вроде:
[code lang=»Python»]

if os.path.isfile(‘.pythonrc.py’):

    exec(open(‘.pythonrc.py’).read())

[/code]
Если вы хотите использовать файл запуска в сценарии — вам нужно будет указать это явно:
[code lang=»Python»]

import osfilename = os.environ.get(‘PYTHONSTARTUP’)

if filename and os.path.isfile(filename):

    exec(open(filename).read())

[/code]