介绍
Python交互式控制台(也称为Python解释器或Python shell)为程序员提供了快速的方法来执行命令,并尝试或测试代码而不创建文件。
提供对所有Python内置函数以及任何已安装模块,命令历史记录和自动完成功能的访问权限,交互控制台提供了探索Python的机会,并在准备就绪时将代码粘贴到编程文件中。
本教程将介绍如何使用Python交互式控制台,并将其用作编程工具。
进入互动控制台
可以从任何安装了Python的本地计算机或服务器访问Python交互式控制台。
您通常希望使用的命令输入Python的默认版本的Python交互式控制台:
python
如果您设置了编程环境 ,则可以启动环境并访问在该环境中安装的Python和模块版本,方法是首先进入该环境:
cd environments
. my_env/bin/activate
然后键入python
命令:
python
在这种情况下,Python的默认版本是Python 3.5.2,一旦我们输入命令,它将显示在输出中,以及相关版权声明和一些您可以输入额外信息的命令:
OutputPython 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
下一个命令的主要提示是三个大于符号( >>>
):
您可以通过将版本号附加到命令来定位特定版本的Python,而不需要空格:
python2.7
OutputPython 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
在这里,我们收到了使用Python 2.7.12的输出。 如果这是我们的默认版本的Python 2,我们也可以使用命令python2
输入到这个交互式控制台。
或者,我们可以使用以下命令调用默认的Python 3版本:
python3
OutputPython 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
我们也可以使用python3.5
命令调用上述交互式控制台。
随着Python交互式控制台的运行,我们可以继续使用Python的shell环境。
使用Python交互控制台
Python交互式解释器接受Python语法,您将遵循>>>
前缀。
例如,我们可以为变量分配值:
birth_year = 1868
一旦我们将整数值1868
分配给变量birth_year
,我们将按返回并接收一个新行,其中三个大于标号作为前缀:
birth_year = 1868
我们可以继续分配变量,然后用运算符进行数学运算 ,得到计算结果:
>>> birth_year = 1868
>>> death_year = 1921
>>> age_at_death = death_year - birth_year
>>> print(age_at_death)
53
>>>
正如我们在文件中使用脚本一样,我们分配了变量,从另一个中减去一个变量,并要求控制台打印表示差异的变量。
就像任何形式的Python一样,您也可以使用交互式控制台作为计算器:
>>> 203 / 20
10.15
>>>
在这里,我们将整数203
除以20
,并返回了10.15
的商。
多行
当我们编写Python代码时,将覆盖多行,解释器将使用辅助提示符连续行,三个点( ...
)。
要突破这些连续线,您需要按两次ENTER
。
我们可以在下面的代码中看到这样的代码,它分配两个变量,然后使用条件语句来确定打印到控制台的内容:
>>> sammy = 'Sammy'
>>> shark = 'Shark'
>>> if len(sammy) > len(shark):
... print('Sammy codes in Java.')
... else:
... print('Sammy codes in Python.')
...
Sammy codes in Python.
>>>
在这种情况下,两个字符串的长度相等,所以else
语句打印。
请注意,您将需要保留Python缩小四个空格的约定,否则您将收到错误:
>>> if len(sammy) > len(shark):
... print('Sammy codes in Java.')
File "<stdin>", line 2
print('Sammy codes in Java.')
^
IndentationError: expected an indented block
>>>
您不仅可以在Python控制台中跨多行实验代码,还可以导入模块。
导入模块
Python解释器提供了一种快速的方式来检查模块是否在特定的编程环境中可用。 您可以使用import
语句来执行此操作:
>>> import matplotlib
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'matplotlib'
在上述情况下,模块matplotlib在当前的编程环境中不可用。
为了安装它,我们需要离开互动解释器,并按照平常的方式安装:
pip install matplotlib
OutputCollecting matplotlib
Downloading matplotlib-2.0.2-cp35-cp35m-manylinux1_x86_64.whl (14.6MB)
...
Installing collected packages: pyparsing, cycler, python-dateutil, numpy, pytz, matplotlib
Successfully installed cycler-0.10.0 matplotlib-2.0.2 numpy-1.13.0 pyparsing-2.2.0 python-dateutil-2.6.0 pytz-2017.2
一旦matplotlib模块及其依赖关系成功安装,您可以返回到交互式解释器:
python
import matplotlib
此时您将不会收到任何错误消息,并且可以在shell或文件中使用已安装的模块。
离开Python交互控制台
使用键盘快捷键或Python函数可以离开Python交互式控制台的两种主要方法。
基于* nix的系统中的键盘快捷键CTRL
+ D
或CTRL
+ Z
则Windows系统中的CTRL
键将中断您的控制台,并返回到您的原始终端环境:
...
>>> age_at_death = death_year - birth_year
>>> print(age_at_death)
53
>>>
sammy@ubuntu:~/environments$
或者,Python函数quit()
将退出交互式控制台,并返回到您之前使用的原始终端环境:
>>> octopus = 'Ollie'
>>> quit()
sammy@PythonUbuntu:~/environments$
当您使用函数quit()
,它将显示在您的历史文件中,但键盘快捷键CTRL
+ D
将不被记录:
...
age_at_death = death_year - birth_year
print(age_at_death)
octopus = 'Ollie'
quit()
可以通过任何一种方法来取消Python解释器,这取决于您的工作流和您的历史记录需要什么。
访问历史
关于Python交互式控制台的一个有用的东西是,所有的命令都将记录到* nix系统中的.python_history
文件中,您可以在文字编辑器(如nano)中查看,例如:
nano ~/.python_history
使用文本编辑器打开后,您的Python历史记录文件将看起来像您自己的Python命令历史记录:
import pygame
quit()
if 10 > 5:
print("hello, world")
else:
print("nope")
sammy = 'Sammy'
shark = 'Shark'
...
完成文件后,可以按CTRL
+ X
离开nano。
通过跟踪您的所有Python历史记录,您可以回到以前的命令和实验,并复制并粘贴或修改该代码以用于Python编程文件或Jupyter Notebook 。
结论
Python交互式控制台提供了一个实验Python代码的空间。 您可以将其用作测试工具,制定逻辑等等。
要用于调试Python编程文件,您可以使用Python code
模块在文件中打开交互式解释器,您可以在我们的指南“ 如何使用交互式控制台调试Python”中阅读。