非常教程

Python参考手册

翻译 | Interpreters

code

code模块提供了一些工具来实现Python中的read-eval-print循环。包括两个类和便利功能,可用于构建提供交互式解释器提示的应用程序。

class code.InteractiveInterpreter([locals])

这个类处理解析和解释器状态(用户的名字空间); 它不处理输入缓冲或提示或输入文件命名(文件名总是显式传递)。可选的locals参数指定将在其中执行代码的字典; 它默认为一个新创建的字典,其密钥'__name__'设置为'__console__'和键'__doc__'设置为None

class code.InteractiveConsole([locals[, filename]])

密切模拟交互式Python解释器的行为。该类基础上InteractiveInterpreter,并使用熟悉的提示增加了sys.ps1sys.ps2和输入缓冲。

code.interact([banner[, readfunc[, local]]])

便捷功能运行读取评估打印循环。 这将创建一个InteractiveConsole的新实例,并将readfunc设置为InteractiveConsole.raw_input()方法(如果提供)。 如果提供了本地,则将其传递给InteractiveConsole构造函数,以用作解释器循环的默认名称空间。 如果提供,则实例的interact()方法随横幅传递,作为要使用的横幅运行。 控制台对象在使用后被丢弃。

code.compile_command(source[, filename[, symbol]])

这个函数对于想要模拟Python的解释器主循环(又名读 - 评估 - 打印循环)的程序很有用。棘手的部分是确定用户何时输入了可以通过输入更多文本(而不是完整命令或语法错误)完成的不完整命令。这个功能几乎总是与真正的解释器主循环做出相同的决定。

是源字符串; filename 是从中读取源的可选文件名,默认为'<input>'; symbol 是可选的语法开始符号,这应该是'single'(缺省值)或'eval'

如果命令是完整且有效的,则返回代码对象(与compile(源文件名,文件名,符号)相同); 如果命令不完整则无; 如果命令完成且包含语法错误,则引发SyntaxError;如果命令包含无效文字,则引发OverflowError或ValueError。

1.交互式解释器对象

InteractiveInterpreter.runsource(source[, filename[, symbol]])

在解释器中编译并运行一些源代码。 参数与compile_command()相同。 文件名的默认值是'<input>',符号的默认值是'single'。 有几件事会发生:

  • 输入不正确; compile_command()提出了一个例外(SyntaxErrorOverflowError)。语法回溯将通过调用该showsyntaxerror()方法来打印。runsource()返回False
  • 输入不完整,需要更多输入; compile_command()返回Nonerunsource()返回True
  • 输入完成; compile_command()返回一个代码对象。该代码通过调用runcode()(它除了处理运行时异常外SystemExit)来执行。runsource()返回False

返回值可用于决定是使用sys.ps1还是sys.ps2提示下一行。

InteractiveInterpreter.runcode(code)

执行一个代码对象。当发生异常时,showtraceback()被调用来显示回溯。除了SystemExit允许传播的所有异常都被捕获。

关于KeyboardInterrupt的一个注意事项:此例外情况可能发生在此代码的其他地方,并且可能无法始终捕获。调用者应该准备好处理它。

InteractiveInterpreter.showsyntaxerror([filename])

显示刚发生的语法错误。这不会显示堆栈跟踪,因为没有语法错误。如果给出了文件名,它会填充到异常中,而不是Python解析器提供的默认文件名,因为'<string>'从字符串读取时它总是使用。输出由该write()方法编写。

InteractiveInterpreter.showtraceback()

显示刚发生的异常。我们删除第一个堆栈项,因为它在解释器对象实现中。输出由该write()方法编写。

InteractiveInterpreter.write(data)

将一个字符串写入标准错误流(sys.stderr)。派生类应该覆盖它以根据需要提供适当的输出处理。

2.交互式控制台对象

InteractiveConsole类是的一个InteractiveInterpreter子类,因此提供了解释对象以及以下附加的所有方法。

InteractiveConsole.interact([banner])

密切模拟交互式Python控制台。可选的横幅参数指定在首次交互之前要打印的横幅; 默认情况下,它会打印一个与标准Python解释器打印的横幅相似的横幅,然后是括号内的控制台对象的类名称(以免将其与真正的解释器混淆 - 因为它太接近了!)。

InteractiveConsole.push(line)

将一行源文本推送给解释器。该行不应该有换行符; 它可能有内部换行符。该行被附加到一个缓冲区,并且解释器的runsource()方法被调用,并将缓冲区的连接内容作为源进行调用。如果这表示该命令已执行或无效,则重置缓冲区; 否则,该命令是不完整的,并且缓冲区保持原样,因为它是在追加行后。如果需要更多输入,返回值是True如果以某种方式处理该行(这与之相同runsource())则为False

InteractiveConsole.resetbuffer()

从输入缓冲区中移除任何未处理的源文本。

InteractiveConsole.raw_input([prompt])

编写提示并阅读一行。返回的行不包括尾随换行符。当用户输入EOF按键序列时,EOFError会产生。基础实现使用内置函数raw_input(); 一个子类可以用不同的实现来替换它。

翻译 | Interpreters相关

Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法