Python Debug调试技巧

——————·今天是2020年的第14·——————

这是ITester软件测试小栈第89次推文

Debug 对于任何coding人士都是一项非常重要的技能,它能够帮助我们准确的定位错误,发现程序中的 bug。有时候通过程序运行时的报错可以很容易的找到出错的位置,但是有时候必须得通过调试程序才能找出我们的错误,以下介绍一些debug调试技巧。

方法一

利用print()

通过print()将可能有问题的变量打印出来

def fun(s):
    n = int(s)
    print(' n = %d' % n)
    return 100 / n


def main():
    fun('0')


main()

缺点:调试完后程序里到处都是print(),用完得删掉它,否则运行结果会包含很多垃圾信息。

方法二

利用断言

凡是可以用print()来辅助查看的地方,都可以用断言(assert)来替代,如果断言失败,assert语句本身就会抛出AssertionError。

def fun(s):
    n = int(s)
    #assert意味,表达式n != 0应该是True,否则,根据程序运行的逻辑,后面的代码肯定会出错
    #如果断言失败,assert语句本身就会抛出AssertionError
    assert n!=0,'n is zero!'
    return 100 / n


def main():
    fun('0')


main()

缺点:程序中如果到处充斥着assert,和print()相比也好不到哪去。这时,启动Python解释器时可以用-O参数来关闭assert

方法三

打断点

1.添加断点:直接在标记处点击鼠标左键。取消断点时,在同一个位置此点击即可。如果断点所在行代码变蓝,表示,断点已经处于该行代码,但是并未执行。

2.利用Debug运行代码(点击七星瓢虫图标或者通过“运行->调试”),快捷键:alt+shift+F9

3.根据所需进行代码调试,此时,在pycharm 主页面的下方窗口出现2个选项(Debugger 、Console),Debug的调试方式如下所示:

其中, Debugger中可以查看变量信息;Console是用来显示当前控制台输出的信息。

show execution point (F10) : 显示当前所有断点

step over(F8) : 单步步过(会直接执行完该函数)在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。在不存在子函数的情况下是和Step into效果一样的(简而言之,越过子函数,但子函数会执行)

step into(F7) :单步步入(会跟踪到函数内部去,如果函数内部调用了其他函数或模块,则又会跟踪到其他的函数或者模块当中)

step into my code(Alt + Shift +F7) :执行下一行但忽略libraries(导入库的语句)

force step into(Alt + Shift +F7): 执行下一行忽略lib和构造对象等  

step out(Shift+F8):返回上一层函数

run to cursor(Alt +F9) :直接跳到下一个断点

Resume Program:断点调试后,点击按钮,继续执行程序

stop(ctrl+F2):停止调试

最后是今天的分享:Pycharm常用快捷键速查图(Windos&Mac)

ITester软件测试小栈今日分享

获取内容

Pycharm常用快捷键速查图

领取方式

微信公众号后台回复:Pycharm速查图

有图有真相

Pycharm常用快捷键速查图可以设为桌面或者打印出来放在手边,想不起来时瞄一眼,很快就能freestyle的使用快捷键,代码写得看起来更加溜。

以上

That's  all

ITester软件测试小栈

往期内容宠幸

叮—这有一打让你666的测试终极资料包,请查收!

打开PyCharm永久激活的这两个锦囊,再也不用担心写代码的时候让我付费了!

QQ空间面试题放送,速度教科书式扑街补救offer!

金九银十加薪季,测试题预热一波。

测试面试题集-测试基础理论

测试面试题集-测试用例设计:登录、购物车、QQ收藏表情、转账、充值、提现

测试面试题集-生活物品测试:杯子、伞、钢笔、桌子

Selenium系列文章汇总

30个MySQL数据库常用小技巧,吐血整理

SQL从入门到入魔之初入门

SQL从入门到入魔之数据库基本操作

SQL从入门到入魔之select简单查询

MySQL之数据库基本操作语句

MySQL之创建表以及数据库增删改操作

MySQL之数据库基本查询语句

MySQL之数据库多表查询

速看,APP测试之ADB最全指南!

APP测试之Monkey压力测试(一)

APP测试之Monkey压力测试(二)

快来星标 置顶 关注

后台回复资源取干货

想要获取相关资料软件 ?

测试交流Q群:727998947

posted @ 2020-01-14 07:30  ITester软件测试小栈  阅读(1250)  评论(0编辑  收藏  举报