既然不是神,写代码自然免不了要修改。测试并修正代码中各种错误的过程被称作调试,又叫 debug。
刚接触编程的人,往往对调试代码没有很深的认识,觉得把功能做出来就完事了。一旦程序运行出现问题,便无从下手。而实际开发中,调试代码通常要花费比新编写代码更多的时间。所谓“行百里者半于九十”,这句话放在软件开发上一点不为过。你以为完成了 90% 开发工作的时候,剩下的工作可能还要花费差不多的时间。
因此,选择合理的调试方法和工具,对于开发来说意义重大。
在写 Python 代码的时候,我习惯的调试方法很简单,就是在程序里增加输出,以便了解程序的运行路径和变量的值。
以下面这段代码为例:
def twice(n): n *= 2 return na = input("a:")b = input("b:")if a > 3: b += 4 if b > 5: c = a + twice(b) else: c = twice(a) + belse: b -= 2 if b < 1: c = a - twice(b) else: c = twice(a) - bprint c
即使这样不长的一段代码,如果对于某些输入,最后输出的值和你的预期不一致,想要用肉眼从中看出到底哪里出了问题也并不是一目了然的事情。
实现断点调试需要 IDE 的支持。下面以 PyCharm 来演示一下,仍然是前面的代码:
刚接触编程的人,往往对调试代码没有很深的认识,觉得把功能做出来就完事了。一旦程序运行出现问题,便无从下手。而实际开发中,调试代码通常要花费比新编写代码更多的时间。所谓“行百里者半于九十”,这句话放在软件开发上一点不为过。你以为完成了 90% 开发工作的时候,剩下的工作可能还要花费差不多的时间。
因此,选择合理的调试方法和工具,对于开发来说意义重大。
在写 Python 代码的时候,我习惯的调试方法很简单,就是在程序里增加输出,以便了解程序的运行路径和变量的值。
以下面这段代码为例:
def twice(n): n *= 2 return na = input("a:")b = input("b:")if a > 3: b += 4 if b > 5: c = a + twice(b) else: c = twice(a) + belse: b -= 2 if b < 1: c = a - twice(b) else: c = twice(a) - bprint c
即使这样不长的一段代码,如果对于某些输入,最后输出的值和你的预期不一致,想要用肉眼从中看出到底哪里出了问题也并不是一目了然的事情。
实现断点调试需要 IDE 的支持。下面以 PyCharm 来演示一下,仍然是前面的代码: