《Python3.6官方文档》– 第二章 使用python解释器

2.1. 调用解释器

Python解释器一般安装在 /usr/local/bin/python3.6 目录下,将 /usr/local/bin 目录加入到Unix Shell脚本的命令搜索目录下,这样便可以通过输入以下shell命令已启动它[1]

python3.7

既然解释器的存放目录是安装时可选的,那么其他位置也是可以的;请与python的安装用户或系统管理员确认。(/usr/local/python是常用可选目录)

在Windows系统上,python一般安装到 C:/Python36 目录下,你同样可以再安装时选择其他目录。将次目录添加到Path环境变量,你可以通过在DOS命令窗体输入以下命令:

set path=%path%;C:/python36

输入一个文件结束符EOF(Unix上是Ctrl-D,Windows上为Ctrl-Z),解释器会以0状态值退出。如果无效,你可以通过 quit() 命令退出解释器。

解释器的行编辑功能包含交互式编辑、历史记录和代码不全等特性。你需要检查你的系统是否支持行编辑,最快的方式是在Python的命令符下输入ctrl-p,如果系统发出嘟嘟的声音,你的系统则支持行编辑功能,查阅附录:交互式输入编辑和历史记录 中快捷键的介绍。如果系统没有任何反应,或者输出 ^p,那么系统不支持行编辑功能;你只能通过backspace退格键删除当前行的输出内容。

解释器操作有些像Unix shell:使用终端设备作为标准输入来调用它时,解释器交互性的解读和执行命令;当通过文件名作为参数或者以文件作为标准输入设备时,它解读并执行文件中的脚本。

启动解释器的第二个方法是 python -c command [arg] ...,这种方式可以再命令中中直接执行语句,等同于Shell的 -c 选项。因为Python语句通常会包括空格之类的特殊字符,通常建议使用单引号将整体包起来。

有些Python模块也可用作脚本。这个可以通过 python -m module [arg] ... 来调用。只要写出模块的全名,就可以执行模块的源文件。

使用脚本文件时,偶尔会需要在运行脚本后进入交互模式。这也可以通过在脚本之前加上 -i 参数来实现。

所有的命令选项描述可以查阅命令行环境

2.1.1. 参数传递

调用解释器时,脚本名以及后面的附加参数会处理成字符列表,赋值给 sys 模块的argv变量。你可以通过执行 import sys 来访问这个列表。列表的长度至少是1;当没有脚本和参数时,sys.argv[0] 是空字符。当脚本名称为‘-’(标准输入)时,sys.argv[0] 赋值为 ‘-’,当使用 -c 命令时,system.argv[0] 赋值为 ‘-c’。当使用 ‘-m’ 模块时,sys.argv[0]的值为所在模块的券路径名。-c 或 -m 命令后的选项不会被解释器处理,而是保留在 sys.argv 中以供的脚本命令或模块来使用。

2.1.2 交互模式

交互模式是指解释器从tty读取命令。在这种模式下,它根据主提示符来执行,主提示符通常是三个大于符号(>>>);换行继续部分被称为 次提示符,由三点点表示(...)。在第一行提示符之前,解释器会打印欢迎信息,标明版本号和版权信息。

$ python3.7
Python 3.6 (default, Sep 16 2015, 09:25:04)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

当输入多行结构时,需要进行换行处理。如下是if语句的示例

>>> the_world_is_flat = True
>>> if the_world_is_flat:
...     print("Be careful not to fall off!")
...
Be careful not to fall off!

更多交互模式的介绍,请查阅这里

2.2 解释器和环境

2.2.1 源码编码

默认情况下,python源码文件以UTF-8编码。尽管我们约定标准库只使用ASCII作为标识符,以便于代码可移植,但使用UTF-8编码,string字面量、标识符、注释等可以使用世界上大部分的字符。为了能够正常显示这些字符,你的编辑器必须能识别文件是UTF-8编码的,还必须需要使用支持所有字符的字体。

如需声明其他编码格式,需在文件头部添加一行特殊的主食,格式如下:

# -*- coding: encoding -*-

编码需要是python支持的有效字符集
例如,要声明使用Windows-1252字符集,源码的第一行应该是:

# -*- coding: cp1252 -*-

第一行的规则有一例外情况,就是当源码以Unix “#!”开始时。在这种情况下,编码声明将移动到第二行。

#!/usr/bin/env python3
# -*- coding: cp1252 -*-

附注

[1].在Unix上,Python 3.x解释器默认不是以python的名称安装执行的,所以并不会跟同时安装执行的Python 2.x冲突

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/62234.html

(0)
上一篇 2021年8月10日
下一篇 2021年8月10日

相关推荐

发表回复

登录后才能评论