spyder调试教程(debug)

版权声明:如需转载或引用,请注明出处。 https://blog.csdn.net/weixin_39278265/article/details/84963883

前言

感觉百度上没有什么详细的spyder调试教程。这里心心念念是打算写一个的(本来),但是,我不确定自己在短时间内能写的比[5]更好,写一个好的教程还是太费时间了,而现在已经晚上12点半了。

所以在此记录一些调试教程相关的链接,并稍作标注评价,供有需要者用。

1 相关链接

有关python下进行测试的:
[1] unittest — Unit testing framework. https://docs.python.org/2/library/unittest.html

有关__name__== 'main’的:
[2] python中if name == ‘mainhttps://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 总结

差不多了,以后有空再补充。

猜你喜欢

转载自blog.csdn.net/weixin_39278265/article/details/84963883