前言
感觉百度上没有什么详细的spyder调试教程。这里心心念念是打算写一个的(本来),但是,我不确定自己在短时间内能写的比[5]更好,写一个好的教程还是太费时间了,而现在已经晚上12点半了。
所以在此记录一些调试教程相关的链接,并稍作标注评价,供有需要者用。
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
2 示例程序
我写了两个我认为比较经典的缺陷程序:
def piecewise(x, data):
data_len=len(data)
if(data[0][0]<=x<data[-1][0]):
for i in range(data_len-1):
if(data[i][0]<=x<data[i+1][0]):
fx=data[i][1]
break
elif x==data[-1][0]:
fx=data[-2][1]
else:
fx=None
return fx
if __name__ == '__main__':
# 测试数据
data=[(0, -1), (1, 0), (1.5, 4),(2, None)]
x=[0,1,1.5,2,3]
expected_output=[-1,0,4,4,None]
for i in range(0,len(x)):
actual_output=piecewise(x[i], data)
assert actual_output==expected_output[i],print('The actual_output is :', \
actual_output, 'but the expected_output is :', expected_output[i])
如果所有的assert语句都返回True
的话,那么这个程序是不会输出任何值的。
相反,如果有一个assert返回的是False
,那么就会输出错误信息,以及AssetionError
。
3 spyder中debug的一些基本操作
F12
是设置断点:
最上方总共有5个调试按钮,都是蓝色的,从左到右依次是:
进入调试;运行当前行;进入函数或方法内运行;跳出函数或方法;运行到下一个断点;退出调试。
我感觉还挺这些按钮的功能左右还对称的。
大概就这样吧,感觉这几个按钮用好了,调试起来效率非常高。
比如说在for循环里面,直接运行到下一个断点
,就可以进入下一个循环,或者跳出循环等。
这个就要慢慢摸索了…
4 总结
差不多了,以后有空再补充。