
[ Россум, Дрейк, Откидач ] Язык программирования Python
.pdf30.5. calendar — функции для работы с календарем |
421 |
timegm(time_tuple)
Возвращает число секунд, прошедших с начала эпохи (независимо от системы начало эпохи считается равным началу 1970 года) до времени, которое представлено кортежем из девяти чисел time_tuple (см. описание модуля time).
Приложения

425
Приложение A
Параметры командной строки интерпретатора и переменные окружения
Для вызова интерпретатора Python должна быть набрана командная строка следующего формата:
python [options] [-c command | file | -] [arguments]
Где python — путь к исполняемому файлу интерпретатора (или просто имя, если каталог, в котором он находится, включен в пути поиска), options — опции, command — команда на языке Python, file — файл с программой на языке Python и arguments — список аргументов, передаваемых в sys.argv[1:].
Интерпретатор поддерживает следующие опции:
-d
Выводить отладочную информацию при синтаксическом анализе. Этот режим может быть также включен с помощью переменной окружения PYTHONDEBUG (см. ниже).
-i
После выполнения программы перейти в интерактивный режим с выводом приглашения, даже если стандартный поток ввода интерпретатора не является терминалом. Этот режим может быть также включен с помощью переменной окружения PYTHONINSPECT (см. ниже).
-O
Выполнять оптимизацию генерируемого байт-кода. Оптимизация может быть также включена с помощью переменной окружения PYTHONOPTIMIZE (см. ниже).
-OO
Помимо оптимизации (опция -O) удалить из байт-кода строки документации.
-S
Не импортировать модуль site при инициализации.
-t
Выводить предупреждения о непоследовательном использовании символов табуляции в исходном коде.
426 |
Приложение A. Параметры командной строки интерпретатора . . . |
-tt
Генерировать исключение TabError при обнаружении непоследовательного использования символов табуляции в исходном коде.
-u
Отключить буферизацию для стандартных потоков вывода и ошибок. Этот режим может быть также включен с помощью переменной окружения PYTHONUNBUFFERED (см. ниже). Отключение буферизации может быть необходимо для CGI-программ.
-U
Считать все строковые литеральные выражения строками Unicode, то есть воспринимать ’...’ как u’...’. Импортируемые модули, байт-код которых был получен без использования этой опции, будут откомпилированы заново. Возможность задания этой опции присутствует, начиная с версии 1.6.
-v
Выводить отладочную информацию при импортировании модулей. Этот режим может быть также включен с помощью переменной окружения PYTHONVERBOSE (см. ниже).
-x
Игнорировать первую строку исходного кода. Такой режим позволяет задавать способ выполнения программы в его первой строке на платформах, отличных от UNIX.
-X
Использовать строки вместо классов для стандартных исключений. Начиная с версии 1.6, эта опция не поддерживается.
-h
Вывести подсказку и завершить выполнение. Возможность задания этой опции присутствует, начиная с версии 2.0.
-V
Вывести номер версии интерпретатора и завершить выполнение. Возможность задания этой опции присутствует, начиная с версии 2.0.
Кроме того, на работу интерпретатора оказывают влияние значения следующих переменных окружения:
PYTHONDEBUG
Если эта переменная имеет непустое значение, интерпретатор будет выводить отладочную информацию при синтаксическом анализе исходного кода.
PYTHONINSPECT
Если эта переменная имеет непустое значение, интерпретатор после выполнения программы перейдет в интерактивный режим с выводом приглашения, даже если стандартный поток ввода интерпретатора не является терминалом.

427
PYTHONOPTIMIZE
Если эта переменная имеет непустое значение, интерпретатор будет оптимизировать генерируемый байт-код.
PYTHONUNBUFFERED
Если эта переменная имеет непустое значение, буферизация стандартных потоков вывода и ошибок будет отключена. Отключение буферизации может быть необходимо для CGI-программ.
PYTHONVERBOSE
Если эта переменная имеет непустое значение, интерпретатор будет выводить отладочную информацию при импортировании модулей.
PYTHONSTARTUP
Путь к файлу, который будет выполнен при запуске интерпретатора в интерактивном режиме.
PYTHONPATH
Список каталогов, разделенных символом ‘;’, в которых будет производиться поиск модулей перед поиском в путях по умолчанию. Значение этой переменной окружения отражается на значении sys.path (см. описание модуля sys).
альтернативное значение sys.prefix и, возможно, sys.exec_prefix. Значение переменной окружения должно иметь вид ‘prefix[;exec_prefix]’ (см. описание модуля sys).

428
Приложение B
Грамматика языка
Здесь используются следующие обозначения для лексем:
NAME
Имя (идентификатор).
NUMBER
Числовое литеральное выражение.
STRING
Строковое литеральное выражение.
NEWLINE
Символ (или последовательность из двух символов), обозначающий переход на новую строку.
ENDMARKER
Конец файла (потока).
INDENT
Увеличение уровня отступа.
DEDENT
Уменьшение уровня отступа.
Начальные символы грамматики:
single_input
Одна интерактивная инструкция.
file_input
Модуль или последовательность команд, считываемая из файла.
eval_input
Инструкция-выражение, передаваемое функции eval() или ввод, получаемый функцией input().
single_input: NEWLINE | simple_stmt |
compound_stmt NEWLINE

429
file_input: (NEWLINE | stmt)* ENDMARKER
eval_input: testlist NEWLINE* ENDMARKER
funcdef: |
’def’ NAME parameters ’:’ suite |
parameters: |
’(’ [varargslist] ’)’ |
varargslist: |
(fpdef [’=’ test] ’,’)* |
|
(’*’ NAME [’,’ ’**’ NAME] | ’**’ NAME) | |
|
fpdef [’=’ test] (’,’ fpdef [’=’ test])* |
|
[’,’] |
fpdef: |
NAME | ’(’ fplist ’)’ |
fplist: |
fpdef (’,’ fpdef)* [’,’] |
stmt: |
simple_stmt |
| compound_stmt |
simple_stmt: |
small_stmt (’;’ small_stmt)* [’;’] |
|
|
NEWLINE |
|
small_stmt: |
expr_stmt | |
print_stmt | del_stmt | |
|
pass_stmt | |
flow_stmt | import_stmt | |
|
global_stmt | exec_stmt | assert_stmt |
|
expr_stmt: |
testlist (augassign testlist | |
|
|
(’=’ testlist)*) |
|
augassign: |
’+=’ | ’-=’ |
| ’*=’ | ’/=’ | ’%=’ | ’&=’ |
|
| ’|=’ | ’^=’ | ’<<=’ | ’>>=’ | ’**=’ |
|
print_stmt: |
’print’ ( [ |
test (’,’ test)* [’,’] ] | |
|
’>>’ test [ (’,’ test)+ [’,’] ] ) |
|
del_stmt: |
’del’ exprlist |
|
pass_stmt: |
’pass’ |
|
flow_stmt: |
break_stmt | continue_stmt | |
|
|
return_stmt | raise_stmt |
break_stmt: ’break’
430 |
Приложение B. Грамматика языка |
continue_stmt: ’continue’
return_stmt: ’return’ [testlist]
raise_stmt: |
’raise’ [test [’,’ test [’,’ test]]] |
import_stmt: ’import’ dotted_as_name (’,’ dotted_as_name)* | ’from’ dotted_name ’import’ (’*’ | import_as_name
(’,’ import_as_name)*)
import_as_name: NAME [NAME NAME]
dotted_as_name: dotted_name [NAME NAME]
dotted_name: NAME (’.’ NAME)*
global_stmt: ’global’ NAME (’,’ NAME)*
exec_stmt: |
’exec’ expr [’in’ test [’,’ test]] |
assert_stmt: ’assert’ test [’,’ test]
compound_stmt: |
if_stmt | while_stmt | for_stmt | |
|
try_stmt | funcdef | classdef |
if_stmt: |
’if’ test ’:’ suite |
|
(’elif’ test ’:’ suite)* |
|
[’else’ ’:’ suite] |
while_stmt: |
’while’ test ’:’ suite |
|
[’else’ ’:’ suite] |
for_stmt: |
’for’ exprlist ’in’ testlist ’:’ suite |
|
[’else’ ’:’ suite] |
try_stmt: |
(’try’ ’:’ suite |
|
(except_clause ’:’ suite)+ |
|
[’else’ ’:’ suite] | |
|
’try’ ’:’ suite |
|
’finally’ ’:’ suite) |
except_clause: ’except’ [test [’,’ test]]