【pycharm调试功能】精简解析

一、 关于debug的小故事

1937年,美国青年霍华德·艾肯找到IBM公司为其投资200万美元研制计算机,第一台成品艾肯把它取名为:马克1号(mark1),又叫“自动序列受控计算机”,从这时起IBM公司由生产制表机,肉铺磅秤,咖啡研磨机等乱七八糟玩意儿行业,正式跨进“计算机”领地。为马克1号编制程序的是哈佛的一位女数学家格蕾丝·霍珀,有一天,她在调试程序时出现故障,拆开继电器后,发现有只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。于是,霍珀诙谐的把程序故障统称为“臭虫(BUG)”,把排除程序故障叫DEBUG,而这奇怪的“称呼”,后来成为计算机领域的专业行话。从而debug意为排除程序故障的意思。

Debug调试,是一项学习编程人员的重要技能。只有当学会 debug 了以后,才可以正确的知道程序的走向流程是如何的,现在以下面一个简单的程序给大家介绍一下 Pycharm 中的 debug 功能!

def sum_demo(x, y):
    for _ in range(2):
        x += 1
        y += 1
        result = x + y
    return result

if __name__ == '__main__':
    a = 1
    b = 2
    c = a + b
    result = sum_demo(1, 1)
    print(result)
    print(c)
    print(a)

二、 debug 的断点调试

【pycharm调试功能】精简解析_第1张图片

【pycharm调试功能】精简解析_第2张图片

三、 四种方式开启debug调试

【pycharm调试功能】精简解析_第3张图片
【pycharm调试功能】精简解析_第4张图片
【pycharm调试功能】精简解析_第5张图片
【pycharm调试功能】精简解析_第6张图片
step over(F8):在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。在不存在子函数的情况下是和step into效果一样的。简单的说就是,程序代码越过子函数,但子函数会执行,且不进入。

step into(F7):在单步执行时,遇到子函数就进入并且继续单步执行,有的会跳到源代码里面去执行。

step into my code(Alt+Shift+F7):在单步执行时,遇到子函数就进入并且继续单步执行,不会进入到源码中。

step out(Shift+F8):假如进入了一个函数体中,你看了两行代码,不想看了,跳出当前函数体内,返回到调用此函数的地方,即使用此功能即可。

Resume program(F9):继续恢复程序,直接运行到下一断点处。

以上功能,就是最常用的功能。
一般操作步骤就是,设置好断点,debug运行,然后 F8 单步调试,遇到想进入的函数 F7 进去,想出来在 shift + F8,跳过不想看的地方,直接设置下一个断点,然后 F9 过去。

你可能感兴趣的:(解决各种问题,pycharm,python,ide)