1.2 以交互方式运行Python代码

解释型语言的优势是可以写一句,执行一句,想到哪儿,写到哪儿,而不必像编译型语言那样,需要把程序全部写完、编译成功后才能运行。在以交互方式运行Python代码的过程中,可以随时查看各个对象的类型和属性,以便判断当前编写的代码是否在正确的方向上。

1.2.1 使用Python IDLE交互操作

我特别喜欢使用Python的IDLE这个交互式工具,经常在IDLE中验证代码的写法是否正确,甚至在IDLE中对项目的设计思路做原型验证。

IDLE支持Tab键自动补齐,这个功能可以用来学习一个新的模块,查看模块里面对象的方法和属性。还有两个技巧,有助于使用IDLE:将光标移动到执行过的语句上按回车键,可以重复这个语句;使用下划线(_)可以代替最后一次执行结果。

下面的代码演示了在IDLE中以交互方式连接数据库、查询数据的例子。对于初学者来说,这几行代码读起来会比较吃力。没有关系,这里仅仅是一个演示,后面会对这些代码进行详细讲解。

>>> import pymysql
>>> import pymysql.cursors as cursors
>>> db = pymysql.connect(host='localhost', port=3306, db='photo', user='xufive',
passwd='123')
>>> cursor = db.cursor()
>>> cursor.execute('select * from album')
1
>>> cursor.fetchall()
((1, 0, '烟花三月江浙行', datetime.date(2018, 4, 22), '', '2018年4月15日-20日,
陪同友人游历扬苏杭宁,全程自驾'),)

实际上,IDLE也是一个集成开发工具,可以用来创建或打开.py脚本文件,并对脚本进行编辑、运行和调试。IDLE的Run和Debug菜单包含运行和调试脚本的相关功能;另外,在Options菜单中还可以设置IDLE的配色方案、字体字号等,如图1-3所示。

034-01

图1-3 使用IDLE编辑、运行脚本文件

1.2.2 使用IPython交互操作

IPython是一个Python的交互式Shell,比默认的Python Shell功能更强大,支持变量自动补全、自动缩进,以及bash shell命令,内置了许多很有用的功能和函数。不过,IPython没有被包含在Python内,而是作为Python的第三方模块,需要单独安装。在一个命令行窗口中执行下面的模块安装命令,即可安装IPython模块。pip命令在本书的1.4节有详细讲解。

PS C:\Users\xufive> pip install ipython

安装完成后,在命令行窗口运行ipython.exe,即可启动IPython。和Python IDLE相比,IPython更注重显示格式的美观,还显式地标识出了输入和输出代码。

In [1]: import time

In [2]: time.time()
Out[2]: 1590045124.9188404

In [3]: time.ctime()
Out[3]: 'Thu May 21 15:12:14 2020'

In [4]: import numpy as np

In [5]: np.random.random((3,5))
Out[5]:
array([[0.23292967, 0.38575244, 0.46754979, 0.98790885, 0.56897344],
       [0.82938645, 0.78006211, 0.56846771, 0.33283862, 0.04979372],
       [0.82451171, 0.02402506, 0.93307935, 0.49472482, 0.44523031]])

为代码提供美观的格式,不是IPython唯一的优点,让IPython名扬天下的是依赖IPython运行的Jupyter。Jupyter是一个可以编写漂亮的交互式文档的强大工具。