2.1. 调用 Python 解释器

最后更新于:2022-04-01 00:47:15

Python 解释器通常被安装在目标机器的 /usr/local/bin/python3.4 目录下。将 /usr/local/bin 目录包含进 Unix shell 的搜索路径里,以确保可以通过输入: ~~~ python3.4 ~~~ 命令来启动他。[[1]](http://www.pythondoc.com/pythontutorial3/interpreter.html#id12) 由于 Python 解释器的安装路径是可选的,这也可能是其它路径,你可以联系安装 Python 的用户或系统管理员确认(例如,/usr/local/python 就是一个常见的选择)。 在 Windows 机器上,Python 通常安装在 C:\Python34 位置,当然你可以在运行安装向导时修改此值。要想把此目录添加到你的 PATH 环境变量中,你可以在 DOS 窗口中输入以下命令: ~~~ set path=%path%;C:\python33 ~~~ 通常你可以在主窗口输入一个文件结束符(Unix 系统是 Control-D,Windows 系统是 Control-Z)让解释器以 0 状态码退出。如果那没有作用,你可以通过输入 quit() 命令退出解释器。 Python 解释器具有简单的行编辑功能。在 Unix 系统上,任何 Python 解释器都可能已经添加了 GNU readline 库支持,这样就具备了精巧的交互编辑和历史记录等功能。在 Python 主窗口中输入 Control-P 可能是检查是否支持命令行编辑的最简单的方法。如果发出嘟嘟声(计算机扬声器),则说明你可以使用命令行编辑功能;更多快捷键的介绍请参考 [_交互式输入行编辑历史回溯_](http://www.pythondoc.com/pythontutorial3/interactive.html#tut-interacting)。如果没有任何声音,或者显示 ^P 字符,则说明命令行编辑功能不可用;你只能通过退格键从当前行删除已键入的字符并重新输入。 Python 解释器有些操作类似 Unix shell:当使用终端设备(tty)作为标准输入调用时,它交互的解释并执行命令;当使用文件名参数或以文件作为标准输入调用时,它读取文件并将文件作为 _脚本_ 执行。 第二种启动 Python 解释器的方法是 python -c command [arg] ...,这种方法可以在 _命令行_ 执行 Python 语句,类似于 shell 中的 _-c_ 选项。由于 Python 语句通常会包含空格或其他特殊 shell 字符,一般建议将 _命令_ 用单引号包裹起来。 有一些 Python 模块也可以当作脚本使用。你可以使用 python -m module [arg] ... 命令调用它们,这类似在命令行中键入完整的路径名执行 _模块_ 源文件一样。 使用脚本文件时,经常会运行脚本然后进入交互模式。这也可以通过在脚本之前加上 _-i_ 参数来实现。 ### 2.1.1\. 参数传递 调用解释器时,脚本名和附加参数传入一个名为 sys.argv 的字符串列表。你能够获取这个列表通过执行 import sys,列表的长度大于等于1;没有给定脚本和参数时,它至少也有一个元素:sys.argv[0] 此时为空字符串。脚本名指定为 '-' (表示标准输入)时, sys.argv[0] 被设定为 '-',使用 _-c_ _指令_ 时,sys.argv[0] 被设定为 '-c'。使用 _-m_ _模块_ 参数时,sys.argv[0] 被设定为指定模块的全名。_-c_ _指令_ 或者 _-m_ _模块_ 之后的参数不会被 Python 解释器的选项处理机制所截获,而是留在 sys.argv 中,供脚本命令操作。 ### 2.1.2\. 交互模式 从 tty 读取命令时,我们称解释器工作于 _交互模式_。这种模式下它根据主提示符来执行,主提示符通常标识为三个大于号(>>>);继续的部分被称为 _从属提示符_,由三个点标识(...)。在第一行之前,解释器打印欢迎信息、版本号和授权提示: ~~~ $ python3.3 Python 3.3 (py3k, Sep 12 2007, 12:21:02) [GCC 3.4.6 20060404 (Red Hat 3.4.6-8)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> ~~~ 输入多行结构时需要从属提示符了,例如,下面这个 if 语句: ~~~ >>> the_world_is_flat = 1 >>> if the_world_is_flat: ... print("Be careful not to fall off!") ... Be careful not to fall off! ~~~
';