Перейти на главную страничку сайта (список статей, файлы для скачивания)
Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач, Язык программирования Python
Для вызова интерпретатора 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
Выводить предупреждения о непоследовательном использовании символов табуляции в исходном коде.
-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
Если эта переменная имеет непустое значение, интерпретатор после выполнения программы перейдет в интерактивный режим с выводом приглашения, даже если стандартный поток ввода интерпретатора не является терминалом.
PYTHONOPTIMIZE
Если эта переменная имеет непустое значение, интерпретатор будет оптимизировать генерируемый байт-код.
PYTHONUNBUFFERED
Если эта переменная имеет непустое значение, буферизация стандартных потоков вывода и ошибок будет отключена. Отключение буферизации может быть необходимо для CGI-программ.
PYTHONVERBOSE
Если эта переменная имеет непустое значение, интерпретатор будет выводить отладочную информацию при импортировании модулей.
PYTHONSTARTUP
Путь к файлу, который будет выполнен при запуске интерпретатора в интерактивном режиме.
PYTHONPATH
Список каталогов, разделенных символом ‘;', в которых будет производиться поиск модулей перед поиском в путях по умолчанию. Значение этой переменной окружения отражается на значении sys.path (см. описание модуля sys).
PYTHONHOME
Устанавливает альтернативное значение sys.prefix и, возможно, sys.exec_prefix. Значение переменной окружения должно иметь вид ‘prefix[;exec_prefix]' (см. описание модуля sys).
Здесь используются следующие обозначения для лексем:
NAME
Имя (идентификатор).
NUMBER
Числовое литеральное выражение.
STRING
Строковое литеральное выражение.
NEWLINE
Символ (или последовательность из двух символов), обозначающий переход на новую строку.
ENDMARKER
Конец файла (потока).
INDENT
Увеличение уровня отступа.
DEDENT
Уменьшение уровня отступа.
Начальные символы грамматики:
single_input
Одна интерактивная инструкция.
file_input
Модуль или последовательность команд, считываемая из файла.
eval_input
Инструкция-выражение, передаваемое функции eval() или ввод, получаемый функцией input().
single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE 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' 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]] suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT test: and_test ('or' and_test)* | lambdef and_test: not_test ('and' not_test)* not_test: 'not' not_test | comparison comparison: expr (comp_op expr)* comp_op: '<' | '>' | '==' | '>=' | '<=' | '<>' | '!=' | 'in' | 'not' 'in'| 'is' |'is' 'not' expr: xor_expr ('|' xor_expr)* xor_expr: and_expr ('^' and_expr)* and_expr: shift_expr ('&' shift_expr)* shift_expr: arith_expr (('<<' | '>>') arith_expr)* arith_expr: term (('+' | '-') term)* term: factor (('*' | '/' | '%') factor)* factor: ('+' | '-' | '~') factor | power power: atom trailer* ('**' factor)* atom: '(' [testlist] ')' | '[' [listmaker] ']' | '{' [dictmaker] '}' | '‘' testlist '‘' | NAME | NUMBER | STRING+ listmaker: test ( list_for | (',' test)* [','] ) lambdef: 'lambda' [varargslist] ':' test trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME subscriptlist: subscript (',' subscript)* [','] subscript: '.' '.' '.' | test | [test] ':' [test] [sliceop] sliceop: ':' [test] exprlist: expr (',' expr)* [','] testlist: test (',' test)* [','] dictmaker: test ':' test (',' test ':' test)* [','] classdef: 'class' NAME ['(' testlist ')'] ':' suite arglist: (argument ',')* (argument [',']| '*' test [',' '**' test] | '**' test) argument: [test '='] test list_iter: list_for | list_if list_for: 'for' exprlist 'in' testlist [list_iter] list_if: 'if' test [list_iter]
Перейти на главную страничку сайта (список статей, файлы для скачивания)
© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.