调试
程序能一次写完并正常运行的概率很小,基本不超过1%。总会有各种各样的bug需要修正。有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复bug。
第一种方法简单直接粗暴有效,就是用 print() 把可能有问题的变量打印出来看看:
def foo(s):
n = int(s)
print('>>> n = %d' % n)
return 10 / n
def main():
foo('0')
main()
执行后在输出中查找打印的变量值:
$ python3 err.py
>>> n = 0
Traceback (most recent call last):
…
ZeroDivisionError: integer division or modulo by zero
用 print() 最大的坏处是将来还得删掉它,想想程序里到处都是 print() ,运行结果也会包含很多垃圾信息。所以,我们又有第二种方法。