
本章中,笔者主要想介绍一下一个自己常用的代码编辑器(IDE工具)——Anaconda下集成的一个界面有点类似eclipse的IDE工具Spyder编辑器,当然开源的Python包管理器Anaconda下还有Jupyter Notebook、ipython等等一系列比较好用的工具,我也经常使用这些工具,篇幅有限,这些就有空再讲了。
一、Anaconda简介与安装【安装了anaconda就自动有了Spyder】
Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。
https://www.anaconda.com/www.anaconda.com
上面这个链接是anaconda官网,感兴趣的可以自己去下载,具体的安装过程过于简单,可以自己去搜,就不在此赘述了。

最后安装完,在win10系统的开始菜单栏会有一个这样的效果:

二、Spyder界面简介与设置
2.1 界面设置、字体调节

- 上面2个打开任意一个红框皆可以,点击,打开Preference, 点击general。中间那里有2个,一个是编辑区的字体大小,一个是显示结果的区域字体大小,都可以调节。

- 调节字体粗细,不同编辑区域的字体颜色。reset可以恢复还原。B表示加粗字体;


2.2 与打开/新建文件及项目
- Spyder刚开始打开工程的目录不同,若想保存到指定目录下,按照如下图片操作即可。

- 点击第一排中间菜单栏的project ,第一个new, 选择第一个 点new project ,就可以建立一个项目了。
- 点击第一排中间菜单栏的project ,点击第二个 open project 打开一个项目,这里的项目是指一个大的文件夹。
- 文件夹里面有好多py文件,点击一下文件夹就会被选中打开。
============
- 可点击左上角的第一个file文件--》第2个 open,只打开一个xx.py 文件,即Python文件。
- 点击左上角的第一个file文件--》第1个 new,只能新建一个xx.py 文件,即Python文件。
- 同样左上角,第二排有个文件夹的图标,也只能打开一个xx.py 文件,即Python文件。
- 注意:如果仅仅打开一个Python文件,就用file方法打开。
2.3 快速锁定相同的代码

- 鼠标放到想要锁定字体的前面或者字体中间即可,慢的话要2.3秒。
- 1 先用鼠标类似上面扫到TensorFlow ,2 然后按 Ctrl+F ,会自动copy到搜索框里面。3 按 enter 键,会自动搜索代码相同的地方则高亮。若同一代码中多个地方都有,不断按enter会自动跳过去,免去人眼找高亮。
- 或者 先 Ctrl+F,自己在底部搜索框敲待搜索的字符。按 enter 键,会自动搜索代码相同的地方 则高亮。
三、程序断点调试部分
3.1 断点调试相关参考资料链接
有关python下进行测试的:
[1] unittest — Unit testing framework. https://docs.python.org/2/library/unittest.html
有关__name__== 'main’的:
[2] python中if name == ‘main’ https://www.cnblogs.com/kex1n/p/5975575.html
有关于assert语句的:
[3] Simple statements. https://docs.python.org/3/reference/simple_stmts.html#the-assert-statement
有关assert语句写法,如assert 2 + 2 == 5, “Houston we’ve got a problem” :
[4] What is the use of “assert” in Python? https://stackoverflow.com/questions/5142418/what-is-the-use-of-assert-in-python
算是比较详细的spyder教程
[5] 使用spyder3调试python程序的简明教程 https://www.jianshu.com/p/082b20fcafea
也讲了下python assert的用法
[6] python assert的作用。 https://www.cnblogs.com/hezhiyao/p/7805278.html
3.2 Spyder中debug的一些基本操作——设置断点
- F12按钮可以设置断点:

- 在工具栏中设置:最上方工具栏总共有5个调试按钮,都是蓝色,从左到右是: 进入调试;运行当前行;进入函数或方法内运行;跳出函数或方法;运行到下一个断点;退出调试。

这几个按钮用好了,调试起来效率非常高。 比如说在for循环里面,直接运行到下一个断点,就可以进入下一个循环,或者跳出循环等。
3.3 断点调试举个例子
- 首先我们先有个程序:

- 这个是pyder 的调试按钮,对应的意思:1、进入调试,到达第一个断点;2、进入断点后单步调试;3、进入函数(进入函数后也可以单步调试);4、退出函数;5、跳到下个断点;6、停止调试。

3.4 具体断点调试过程
- 在print(a) 这一行前双击,设置一个红色的断点,然后点击调试按钮:
- 第一步结果:(在spyder界面的右下角)

- 第二步调试:程序上显示的红色背景代表调到的行

- 接着单步调试:发现进入函数行,结果也显示到函数行,但是这里其实进不去函数,接着单步调试,会发现,


- 其实到了调用函数的这一行:

- 点击进入函数,我们就进入函数体内部:

- 接着单步调试。出现这样的调试结果,即函数体内部的程序行:

- 接着按上述方法就可以调试了
3.5 进入函数内部进行调试的方法:
- 如果是从多个自己定义的函数,又是在自己定义的B函数中调用了自己定义的A函数,就把代码复制到别的地方进行一步步调试,拆开就行;
- 单步调试运行到调用函数的那一行;

- 然后,点那个进入函数体内部调试的按钮进行调试;

- 就进去了(箭头指向的那一行没有运行完成,箭头的上一行表示已经运行了,然后观察变量的一步步变化的过程,有哪些变化);
四、其他细节tips部分
4.1 针对数据比较多的代码的变量的复制
- 要把数据量比较多的dataframe变量中的数据复制到CSV文件中观察操作过程,需要把数据拖到最下面,再Ctrl+A全选再Ctrl+V复制即可,不然只复制了上面很少的一部分数据;

4.2 Spyder中让生成的图像单独在窗口中显示
- IPython 支持两种形式的绘图
- 终端输出图像
- 新窗口输出图像
- 方式 1 能够非常方便的保存输出记录(如将`IPython 终端输出转换成 Html 文件)
- 方式 2 则可以交互式的放大、拖动图片,并且能将图片保存成不同的格式
在终端窗口中输出图片的命令是:
In [1]: %matplotlib inline
在图片窗口表现图片的命令是:
In [4]: %matplotlib qt5 在python3的版本中是qt5
- 注意此两个语句是命令行输入,若在spyder中此语句无效,需要到ipython窗口命令窗口中输入,而若是在juypter notebook中则可以写在Python文件中
- 对于spyder,可以在设置中更改默认选项。
- Tools > Preferences > IPython Console > Graphics > Graphics backend, inline 即终端输出,Qt则是新窗口输出。