2. Using the Python Interpreter:使用Python解释器

【注】翻译官方文档,只是想在学习Python过程留下笔记,如涉及侵权,请联系删除。
The Python Tutorial
linyk3简书:The Python Tutorial:Python教程笔记
linyk2655 Github LearnPython
原文:Using the Python Interpreter

  1. Using the Python Interpreter 使用Python 解释器

2.1. Invoking the Interpreter 调用解释器

The Python interpreter is usually installed as /usr/local/bin/python3.7 on those machines where it is available; putting /usr/local/bin in your Unix shell’s search path makes it possible to start it by typing the command:
在能够使用Python的机器中,Python解释器经常安装在 /usr/local/bin/python3.7. 把 /usr/local/bin 这个目录加在Unix shell 的搜索路径,就能在Shell.输入下面的命令来启动:

Python3.7

to the shell. [1] Since the choice of the directory where the interpreter lives is an installation option, other places are possible; check with your local Python guru or system administrator. (E.g., /usr/local/python is a popular alternative location.)
Python解释器的路径的选择是安装时的选项,其他路径也是可以的。可以让你的Python大师或系统管理员来检查。(例如,/usr/local/python 这个路径是另外一个比较流行的选择)

On Windows machines, the Python installation is usually placed in C:\Python36, though you can change this when you’re running the installer. To add this directory to your path, you can type the following command into the command prompt in a DOS box:
在Windows的机器中,Python经常安装在C:\Python36,即使你可以在执行安装程序的时候修改路径。如果要把这个目录加到环境变量中的Path中,你可以在Dos命令行提示器中输入下面的命令:

set path=%path%;C:\python36

Typing an end-of-file character (Control-D on Unix,Control-Z on Windows) at the primary prompt causes the interpreter to exit with a zero exit status. If that doesn’t work, you can exit the interpreter by typing the following command: quit().
在命令行提示器中输入结束符(Unix是Control-D, Windows是Control-Z)可以让解释器以状态‘0’退出。如果这个不起作用,你可以输入下面的命令来退出解释器:quit().

The interpreter’s line-editing features include interactive editing, history substitution and code completion on systems that support readline. Perhaps the quickest check to see whether command line editing is supported is typing Control-P to the first Python prompt you get. If it beeps, you have command line editing; see Appendix Interactive Input Editing and History Substitution for an introduction to the keys. If nothing appears to happen, or if ^P is echoed, command line editing isn’t available; you’ll only be able to use backspace to remove characters from the current line.
在支持按行读取的系统中,解释器的行编辑的特征包括:交互式编辑、历史替换以及代码补全。获取最快地检查是否支持命令行编辑的方法就是在你的Python提示器中输入Control-P. 如果它发出蜂鸣声,说明支出命令行编辑。相关的介绍可以参考附录Interactive Input Editing and History Substitution:交互式编辑和历史替换。如果没有任何事情发生,或者提示的是^P,说明命令行编辑是不支持的。这样你只能使用退格键来删除当前行的字符。

The interpreter operates somewhat like the Unix shell: when called with standard input connected to a tty device, it reads and executes commands interactively; when called with a file name argument or with a file as standard input, it reads and executes a scriptfrom that file.
解释器的操作类似Unix Shell: 当调用关联于某个tty设备的标准输入时,它交互式的读取并执行命令。当调用一个文件名为参数或者文件作为标准输入时,它读取并执行这个文件中的脚本。

A second way of starting the interpreter is python -c command [arg] ..., which executes the statement(s) in command, analogous to the shell’s -c option. Since Python statements often contain spaces or other characters that are special to the shell, it is usually advised to quote command in its entirety with single quotes.
第二个启动解释器的方式是:python -c command [arg] ..., 这样可以执行command 这个语句,类似shell 的 -c 选项。因为Python语句经常包含有空格符或其他Shell中的特殊字符,所以建议将 command 整体用引号包起来。

Some Python modules are also useful as scripts. These can be invoked using python-m module [arg] ..., which executes the source file for module as if you had spelled out its full name on the command line.
一些Python模块也跟脚本一样很有用。这些可以用python-m module [arg] ...命令来调用,就可以像在命令中把模块的全名拼出来一样来执行module 这些模块文件。

When a script file is used, it is sometimes useful to be able to run the script and enter interactive mode afterwards. This can be done by passing -i before the script.
当一个脚本文件被使用,如果可以运行脚本并且在后面输入交互命令就更好了。这个可以通过在脚本前面加上-i来实现。

All command line options are described in Command line and environment.
所有的命令的选项都在 Command line and environment:命令行与运行环境中有详细介绍。

2.1.1. Argument Passing 参数传递

When known to the interpreter, the script name and additional arguments thereafter are turned into a list of strings and assigned to the argv variable in the sys module. You can access this list by executing import sys. The length of the list is at least one; when no script and no arguments are given, sys.argv[0] is an empty string. When the script name is given as '-' (meaning standard input), sys.argv[0] is set to '-'. When -c command is used, sys.argv[0] is set to '-c'. When -m module is used, sys.argv[0] is set to the full name of the located module. Options found after -ccommand or -m module are not consumed by the Python interpreter’s option processing but left in sys.argv for the command or module to handle.
我们知道解释器中,脚本的名字及其后面附加的参数会被转换为一个字符串列表并且赋值给sys模块中的变量argv。 你可以通过执行import sys来访问这个列表。这个列表的长度至少是1;当没有提供脚本或参数时,sys.argv[0] 是一个空字符串。当脚本的名字是'-'(表示标准输入), sys.argv[0] 设置为 '-'. 当使用 -c command 时, sys.argv[0] 设置为 '-c'. 当使用 -m module 时, sys.argv[0] 被赋值为本地模块的全称. 在 -ccommand 或者 -m module 后面的选项不会被Python解释器处理,而是留在 sys.argv 给 command or module 去处理。

2.1.2. Interactive Mode 交互模式

When commands are read from a tty, the interpreter is said to be in interactive mode. In this mode it prompts for the next command with the primary prompt, usually three greater-than signs (>>>); for continuation lines it prompts with the secondary prompt, by default three dots (...). The interpreter prints a welcome message stating its version number and a copyright notice before printing the first prompt:
当命令是从tty中读取的,这时解释器就是在所谓的交互模式。在这个模式中它为下一个命令提供了主要提示,经常是三个大于号(>>>)来表示。为延续行提供了次级提示,缺省是三个点(...). 解释器在开始它的第一个提示符之前,会打印欢迎信息,以其版本号和版权开始:

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

Continuation lines are needed when entering a multi-line construct. As an example, take a look at this if statement:
延续行是在输入一个多行的结构时需要的。例如,可以看看if语句:

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

For more on interactive mode, see Interactive Mode.
更多关于交互模式,可以参考 Interactive Mode:交互模式.

2.2. The Interpreter and Its Environment 解释器及其运行环境

2.2.1. Source Code Encoding 源码编辑

By default, Python source files are treated as encoded in UTF-8. In that encoding, characters of most languages in the world can be used simultaneously in string literals, identifiers and comments — although the standard library only uses ASCII characters for identifiers, a convention that any portable code should follow. To display all these characters properly, your editor must recognize that the file is UTF-8, and it must use a font that supports all the characters in the file.
默认地,Python源文件都是UTF8编码的。用这个编码格式,世界上大部分的字符都可以同时来表示 字符串文字、标识符和注释 -- 虽然标准库中的标识符只使用了ACSII字符,遵从了可移植性代码的便利性。为了能够正确展示这些字符,你的编辑器必须能够辨识出这个文件是UTF-8,并且使用一种支持文件中所有字符的字体。

To declare an encoding other than the default one, a special comment line should be added as the first line of the file. The syntax is as follows:
为了声明一种非默认的编码格式,需要在文件的第一行中加上一个特殊的注释,相关的语法就是:

# -*- coding: encoding -*-

where encoding is one of the valid codecs supported by Python.
encoding 是Python支持的的一个合法的codecs

For example, to declare that Windows-1252 encoding is to be used, the first line of your source code file should be:
例如,为了声明使用的是 Windows-1252编码格式,你的源文件中的第一行应该是:

# -*- coding: cp1252 -*-

One exception to the first line rule is when the source code starts with a UNIX “shebang” line. In this case, the encoding declaration should be added as the second line of the file. For example:
第一行规则的一个例外就是源文件以UNIX “shebang” line 开头。在这种情况中,编码格式的声明应该加在文件中的第二行。例如:

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

Footnotes 注脚
[1] | On Unix, the Python 3.x interpreter is by default not installed with the executable named python, so that it does not conflict with a simultaneously installed Python 2.x executable. |

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,951评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,606评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,601评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,478评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,565评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,587评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,590评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,337评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,785评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,096评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,273评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,935评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,578评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,199评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,440评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,163评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,133评论 2 352

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,319评论 0 10
  • 一句押韵而对仗的 漂亮诗句 化成风 飞进你的字里行间 像天上月 敲打着你的悲伤 咚咚作响 高高在上
    蒙面失明阅读 254评论 0 1
  • 今天是清明节的假期,我们陪孩子来到重庆陪她去泡温泉,孩子难的休息一天,因为平时周一至周五都上课,周末又要学习其...
    蓝莓888阅读 190评论 0 2
  • 52020641181 百度搜索这个数字,帮我点赞,谢谢大家噢
    功功阅读 128评论 0 0
  • 自从上次被逼着写了一篇公众号文章后,我就急切希望每天都能写一篇对别人有用的文章,而不仅仅是写反思日记,挣扎了一个星...
    李想的生活阅读 416评论 0 0