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