购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 Spyder介绍

Python语言的调试需要在 开发工具 (Integrated Development Environment, IDE)中进行。开发工具一般由编辑器、编译器、调试器和图形用户界面等组成。由于Python是开源的,因此有很多种IDE可供选择,如PyCharm、Spyder和Jupyter等。本书将以Spyder为例介绍其安装步骤及使用方法。一般可以通过第三方软件Anaconda安装Spyder,其界面如图1-8所示。

除去Spyder外,Anaconda还集成了工具包conda提供的第三方库的管理和环境管理的功能,并支持Windows、Linux和Mac系统,可以帮助用户便捷地解决不同版本Python的共存和切换问题。Anaconda的安装同时还集成了常用的第三方运算库。

如图1-8所示打开Anaconda后的界面,可以看到JupyterLab、Jupyter Notebook、Powershell Prompt、Qt Console、Spyder、Glueviz、Orange 3和RStudio等工具。Jupyter Notebook是基于网页的用于交互计算的集成开发环境,Jupyter Lab可被视为Jupyter Notebook的升级版,包含了Jupyter Notebook的所有功能。Orange 3是交互式数据挖掘与可视化工具箱。

安装并打开Spyder后,其界面如图1-9所示,包括工具栏①、当前文件路径②、Python代码编辑器③、变量显示区④和交互界面⑤。在工具栏里包含了众多代码调试工具,代码的编写和修改则显示在Python代码编辑器,交互界面用于显示代码的运行结果和生成的图片,在变量显示区可以查看当前变量的名称、占用空间和值。若用户习惯了使用MATLAB,还可以通过设置View → Windows layouts → MATLAB layout,使Spyder的界面接近MATLAB的界面,如图1-10所示。

如果代码运行结果是以图片的方式显示,Spyder默认显示方式是嵌入在 控制台 (console)中。若用户希望以弹窗的方式来显示图片,则可通过如下操作进行切换。如图1-11所示,用户依次单击菜单栏的Tools → Preferences → Ipython console → Graphics → Graphics backend → Automatic。Automatic对应的是以弹窗方式显示图片,Inline对应的是图片在控制台中显示。完成设置后,读者需要重新打开Spyder才能使新设置生效。如图1-12所示对比了两种图片显示方式。

图1-8 Anaconda界面

图1-9 Spyder默认打开界面

图1-10 Spyder界面接近MATLAB界面

图1-11 调整显示图片的方式

图1-12 对比两种显示图片格式的方法

Spyder中的字体样式、大小和高亮颜色均可以进行修改,具体的修改方式如图1-13所示。

图1-13 修改Spyder中代码的字体样式

Python采用缩进来实现不同的逻辑结构,同时也使得代码变得美观易读。编写Python代码时缩进错误会导致报错。如图1-14所示,Python代码的第一行不允许缩进,其后的缩进通常是通过插入四个空格来实现。Python中常见的需要缩进的场合包括for循环、while else循环、if else判断语句、函数定义及类的定义等。同一缩进级别里的代码属于同一逻辑块。这些需要使用缩进的场合往往都需用冒号“:”来表示下一行需要使用缩进。

图1-14 缩进形成不同的代码级别

如图1-15所示为三组缩进的示例,第一行代码的错误在于代码开始的第一行不能缩进,第二行代码中的错误为使用 制表符 (tab key)来实现缩进,Python并不鼓励在代码中使用制表符来实现缩进,这是因为不同的Python调试开发工具对于制表符有着不同的解读,比如有些调试开发工具将制表符解读为4个空格的宽度,有的则解读为8个空格的宽度,因此为了避免代码逻辑混乱,不建议读者使用制表符来实现缩进。

图1-15 缩进示例:Line #1和Line #2错误,Line #3正确

图1-16和图1-17所示分别展示了if…else…循环未采用缩进和正确采用缩进两种情况。

图1-16 未使用缩进导致错误的示例

图1-17 正确使用缩进示例

为了清晰地看出代码中空格的数量,读者可以在Spyder中设置显示空格数量,具体操作为Tools → Preferences → Editor → Source Code → Indentation characters,如图1-18所示。

图1-18 Spyder中可设置缩进所用的空格数量

Spyder中的缩进默认通过四个空格来表示,但读者也可以根据个人喜好,设定其他数量的空格,具体的设置为Tools → Preferences → Editor → Display → Show blank spaces,如图1-19所示。

图1-19 设置缩进的空格

以下代码展示了在定义函数is_prime过程中如何使用缩进来实现不同的代码结构,如前所述,同一逻辑级别的代码块应当使用相同数量的空格。

以下代码展示了在定义类的时候如何正确地使用缩进。在以下例子中,在类的名称Person后,定义函数__init__()以及myfunc()时均需要使用空格和冒号来实现缩进。

Python提供了类似MATLAB中 代码节 (code cell, code section)的功能。长代码中往往有很多行代码。为了方便调试和阅读代码,可以将代码划分为多个代码节。用户在运行代码时,可以方便地调试不同代码节中的代码。Python以符号#%%来划分代码节。运行代码块可采用工具栏中的“Run current cell”或者按快捷键“Ctrl + Return”,如图1-20所示为Return键所在的位置,值得注意的是右下角的数字键盘中的“Enter”键并没有“Return”键的功能。

图1-20 Return键在键盘中的位置

读者可尝试以运行代码节的方式运行下文代码,生成图1-21。图1-21所示为Vasicek和CIR利率模型结果,本丛书有专门章节介绍利率建模,请读者参考学习。

图1-21 执行程序代码块

如下代码可以获得图1-21。

Spyder可通过设定快捷键来提高操作效率,表1-3列举了部分常用的快捷键。

表1-3 Spyder快捷键

表1-3中的快捷键可以通过如图1-22所示的设置进行修改。

图1-22 修改快捷键

Python中每行最多可以使用79个字符,当一行中的字符过多时,一般采用 隐式续行 (line continuation)来完成换行。

在定义函数时,有时候会遇到名称很长或者变量很多的情况,这时候常常需要结合合适的缩进来实现隐式续行。如图1-23和图1-24所示为在定义函数时如何使用隐式续行,图1-23所定义函数从第一个变量开始换行,并插入8个空格,函数的正文前需要插入4个空格,如图1-24所示。

图1-23 隐式续行(1)

图1-24 隐式续行(2)

上例对应具体代码如下。

除此之外,隐式续行也可以通过使用括号“()”或斜线“\”来进行。以下代码展示了这种情况。 L/oVoNeph9EGBGWtJbzCBqAd9hOMA09jQRXySpjIBB992Yp6qyW84TfDOmisibIh

点击中间区域
呼出菜单
上一章
目录
下一章
×