[译]The Python Tutorial#2. Using the Python Interpreter
[译]The Python Tutorial#Using the Python Interpreter
2.1 Invoking the Interpreter
Python解释器通常安装在目标机器的/usr/local/bin/python3.6
目录下;将/usr/local/bin
设置到Unix shell的搜索路径中,就可以使用以下命令:
python3.6
启动Python解释器[1]。由于Python的安装路径是可选的,其他目录也是可能的;可以咨询Python安装用户或者系统管理员确认。(例如/usr/local/python
是常见的可选目录。)
Window机器上,Python通常安装在C:\Python36
目录,可是也可以在安装过程中改变安装路径。可以在DOS中输入以下命令来将安装目录加入环境变量:
set path=%path%;C:\python36
在主提示符后输入文件结束符(Unix中是Control-D
,Windows中是Control-Z
)将导致解释器以0状态退出。如果不起作用,可以使用quit()
命令来退出解释器。
解释器的行编辑特性在支持逐行读取系统上的包括交互式编辑,历史替换以及代码补全。检测是否支持命令行编辑的最快方法是在Python解释器的第一个提示符处输入Control-P
,如果电脑发出哔哔声音,则支持命令行编辑;参考附录 Interactive Input Editing and History Substitution获取对键的介绍。如果什么也没有发生,或者^P
重复输出,则不支持命令行编辑;只能使用退格键移除当前行的字符。
Python解释器与Unix shell有些类似:当连接终端设备使用标准输入时,解释器交互读取和执行命令;当使用文件名参数或者文件作为标准输入时,解释器从文件中读取并执行脚本。
另一种启动Python解释器的命令是:python -c command [arg]...
,可在命令行直接执行语句,类似shell的-c选项。由于Python语句通常包含空格或者其他对于shell而言的特殊字符,通常建议使用单引号讲整个命令引用起来。
一些Python模块作为脚本也是很有用的。这些模块可以使用python -m module [args]..
来调用,该命令执行module的源文件,就像在命令行输入其完整路径名调用一样。
当执行脚本文件时,有时候需要在运行脚本之后进入交互模式。可是在脚本之前加上 -i 来实现。
Command line and environment 中有关于所有命令行选项的描述。
2.1.1 Argument Passing
通过解释器执行脚本时,脚本名字以及其后额外的参数变为一个字符串列表,并且被赋值给sys
模块中的argv
变量。可以通过执行import sys
来访问这个列表。该列表的长度至少是1;当没有指定脚本和参数时,sys.argv[0]
是空字符串。当脚本名字是'-'
(表示标准输入)时候,sys.argv[0]
被设置为'-'
。当使用了-c 命令时,sys.argv[0]
被设置为-c
。当使用了-m模块时,sys.argc[0]
被设置为本地模块的全名。在-c 命令或者-m 模块之后的选项不会被Python解释器的选项处理机制所截获,而是放入sys.argv
中供命令或者模块处理。
2.1.2 Interactive Mode
当命令从终端读取时,称解释器处于交互模式中。在这个模式中,解释器使用主提示符提示下一命令的输入,通常使用三个大于符号(>>>
);使用从属提示符提示连续行的输入,默认使用三个逗号(...
)。解释器启动后,在打印第一个提示符之前,会打印一条以其版本号和版权提示开头的欢迎语句:
$ python3.6
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!
交互模式的更多信息,参见 Interactive Mode。
2.2 The Interpreter and Its Environment
2.2.1 Source Code Encoding
默认情况下,Python源文件默认以UTF-8编码。使用这种编码,世界上大多数语言的字符可以同时在字符串常量,标识符以及注释中使用——虽然标准库标识符只使用了ASCII字符,这是任何可移植代码都应该遵循的约定。为能够正确展示所有字符,编辑器必须使用UTF-8读取文件,并且必须使用支持文件中所有字符的字体。
在文件第一行加入特殊注释行可以为文件指定不同编码方式。语法如下:
# -*- coding: encoding -*-
这里的encoding必须是Python支持的有效编码
例如,为声明使用Windows-1252,源文件首行应该如下:
# -*- coding: cp-1252 -*-
首行规则有一个例外,即当源码以UNIX "shebang" line开始。这种情况下,编码声明应该加到第二行,例如:
#!/usr/bin/env python3
# -*- coding: cp-1252 -*-
Footnotes
[1] Unix中,Python3.x解释器并没有以可执行名字python
安装,以便于不与同时安装的Python2.x冲突。
[译]The Python Tutorial#2. Using the Python Interpreter的更多相关文章
- Python tutorial阅读之使用 Python 解释器
配置环境变量后,一般可以直接通过Python或指定Python版本号来调用Python. Python 解释器有些操作类似 Unix shell:当使用终端设备(tty)作为标准输入调用时,它交互的解 ...
- [译]The Python Tutorial#7. Input and Output
[译]The Python Tutorial#Input and Output Python中有多种展示程序输出的方式:数据可以以人类可读的方式打印出来,也可以输出到文件中以后使用.本章节将会详细讨论 ...
- The Python Tutorial 和 documentation和安装库lib步骤
链接: The Python Tutorial : https://docs.python.org/3.6/tutorial/index.html Documentation: https://doc ...
- [译]The Python Tutorial#11. Brief Tour of the Standard Library — Part II
[译]The Python Tutorial#Brief Tour of the Standard Library - Part II 第二部分介绍更多满足专业编程需求的高级模块,这些模块在小型脚本中 ...
- [译]The Python Tutorial#10. Brief Tour of the Standard Library
[译]The Python Tutorial#Brief Tour of the Standard Library 10.1 Operating System Interface os模块为与操作系统 ...
- [译]The Python Tutorial#12. Virtual Environments and Packages
[译]The Python Tutorial#Virtual Environments and Packages 12.1 Introduction Python应用经常使用不属于标准库的包和模块.应 ...
- [译]The Python Tutorial#1. Whetting Your Appetite
[译]The Python Tutorial#Whetting Your Appetite 1. Whetting Your Appetite 如果你需要使用计算机做很多工作,最终会发现很多任务需要自 ...
- [译]The Python Tutorial#8. Errors and Exceptions
[译]The Python Tutorial#Errors and Exceptions 到现在为止都没有过多介绍错误信息,但是已经在一些示例中使用过错误信息.Python至少有两种类型的错误:语法错 ...
- [译]The Python Tutorial#5. Data Structures
[译]The Python Tutorial#Data Structures 5.1 Data Structures 本章节详细介绍之前介绍过的一些内容,并且也会介绍一些新的内容. 5.1 More ...
随机推荐
- 详细介绍VO(值对象)和PO(持久对象)的区别
VO,值对象(Value Object),PO,持久对象(Persisent Object),它们是由一组属性和属性的get和set方法组成.从结构上看,它们并没有什么不同的地方.但从其意义和本质上来 ...
- windows 安装python
前言: Windows 中直接使用Python真的是心累 安装vs 2017(最好是最新版的, 因为python依赖于一些vs提供的包) 下载最新的python的安装程序 安装完毕之后, 不像Linu ...
- MongoDB Linux 安装配置 后台运行
介绍安装的文档很多,可以参考这篇: http://www.mkyong.com/mongodb/how-to-install-mongodb-on-mac-os-x/ 安装完后你可能会碰到的2个问题. ...
- 傻瓜式的go modules的讲解和代码,及gomod能不能引入另一个gomod和gomod的use of internal package xxxx not allowed
一 国内关于gomod的文章,哪怕是使用了百度 -csdn,依然全是理论,虽然golang的使用者大多是大神但是也有像我这样的的弱鸡是不是? 所以,我就写个傻瓜式教程了. github地址:https ...
- Centos 6.5 添加PHP5.6-7.1的源
centOS6.5 安装后 自带的源中php是5.3版本的,对与php一些常用的框架而言 ,已经不能满足需求了: 使用下面的源 就可以更新到php7.1版本了. # rpm -Uvh http://r ...
- 解决IE8的兼容问题
本文分享下我在项目中积累的IE8+兼容性问题的解决方法.根据我的实践经验,如果你在写HTML/CSS时候是按照W3C推荐的方式写的,然后下面的几点都关注过,那么基本上很大一部分IE8+兼容性问题都OK ...
- vue列表到详情页的实现
路由里边的 router/index.js path:'/detail/:id' 动态id 列表页渲染时: :to="'/detail/'+item.id" ===>id是指 ...
- C# 获取文件夹下所有的文件
static void getAllFileNameInDir(string path, ref List<string> files) { DirectoryInfo folder = ...
- cocos2d-x 配置教程
下载cocos2d-x并解压(解压的路径不要带空格,不然以后用cygwin编译工程的时候会出现错误),我的解压到了D:\cocos2d-2.1rc0-x-2.1.2(我的版本是cocos2d-2.1r ...
- C++,C++编程,Windows编程,MFC
编程 我们日常生活中接触到的电子类产品中的应用都是由编程而来 为什么编程,偷懒 我们通过编程驱使(指挥,命令)的是电信号 为什么上面说编程是偷懒,电的发现,给人们带来了便利,人们在各个方面驱使(换成“ ...