企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 导航 - [索引](../genindex.xhtml "总目录") - [模块](../py-modindex.xhtml "Python 模块索引") | - [下一页](grammar.xhtml "10. 完整的语法规范") | - [上一页](compound_stmts.xhtml "8. 复合语句") | - ![](https://box.kancloud.cn/a721fc7ec672275e257bbbfde49a4d4e_16x16.png) - [Python](https://www.python.org/) » - zh\_CN 3.7.3 [文档](../index.xhtml) » - [Python 语言参考](index.xhtml) » - $('.inline-search').show(0); | # 9. 最高层级组件 Python 解释器可以从多种源获得输入:作为标准输入或程序参数传入的脚本,以交互方式键入的语句,导入的模块源文件等等。 这一章将给出在这些情况下所用的语法。 ## 9.1. 完整的 Python 程序 虽然语言规范描述不必规定如何发起调用语言解释器,但对完整的 Python 程序加以说明还是很有用的。 一个完整的 Python 程序会在最小初始化环境中被执行:所有内置和标准模块均为可用,但均处于未初始化状态,只有 [`sys`](../library/sys.xhtml#module-sys "sys: Access system-specific parameters and functions.") (各种系统服务), [`builtins`](../library/builtins.xhtml#module-builtins "builtins: The module that provides the built-in namespace.") (内置函数、异常以及 `None`) 和 [`__main__`](../library/__main__.xhtml#module-__main__ "__main__: The environment where the top-level script is run.") 除外。 最后一个模块用于为完整程序的执行提供局部和全局命名空间。 适用于一个完整 Python 程序的语法即下节所描述的文件输入。 解释器也可以通过交互模式被发起调用;在此情况下,它并不读取和执行一个完整程序,而是每次读取和执行一条语句(可能为复合语句)。 此时的初始环境与一个完整程序的相同;每条语句会在 [`__main__`](../library/__main__.xhtml#module-__main__ "__main__: The environment where the top-level script is run.") 的命名空间中被执行。 一个完整程序可通过三种形式被传递给解释器:使用 [`-c`](../using/cmdline.xhtml#cmdoption-c) *字符串* 命令行选项,使用一个文件作为第一个命令行参数,或者使用标准输入。 如果文件或标准输入是一个 tty 设置,解释器会进入交互模式;否则的话,它会将文件当作一个完整程序来执行。 ## 9.2. 文件输入 所有从非交互式文件读取的输入都具有相同的形式: ``` file_input ::= (NEWLINE | statement)* ``` 此语法用于下列几种情况: - 解析一个完整 Python 程序时(从文件或字符串); - 解析一个模块时; - 解析一个传递给 [`exec()`](../library/functions.xhtml#exec "exec") 函数的字符串时; ## 9.3. 交互式输入 交互模式下的输入使用以下语法进行解析: ``` interactive_input ::= [stmt_list] NEWLINE | compound_stmt NEWLINE ``` 请注意在交互模式下一条(最高层级)复合语句必须带有一个空行;这对于帮助解析器确定输入的结束是必须的。 ## 9.4. 表达式输入 [`eval()`](../library/functions.xhtml#eval "eval") 被用于表达式输入。 它会忽略开头的空白。 传递给 [`eval()`](../library/functions.xhtml#eval "eval") 的字符串参数必须具有以下形式: ``` eval_input ::= expression_list NEWLINE* ``` ### 导航 - [索引](../genindex.xhtml "总目录") - [模块](../py-modindex.xhtml "Python 模块索引") | - [下一页](grammar.xhtml "10. 完整的语法规范") | - [上一页](compound_stmts.xhtml "8. 复合语句") | - ![](https://box.kancloud.cn/a721fc7ec672275e257bbbfde49a4d4e_16x16.png) - [Python](https://www.python.org/) » - zh\_CN 3.7.3 [文档](../index.xhtml) » - [Python 语言参考](index.xhtml) » - $('.inline-search').show(0); | © [版权所有](../copyright.xhtml) 2001-2019, Python Software Foundation. Python 软件基金会是一个非盈利组织。 [请捐助。](https://www.python.org/psf/donations/) 最后更新于 5月 21, 2019. [发现了问题](../bugs.xhtml)? 使用[Sphinx](http://sphinx.pocoo.org/)1.8.4 创建。