调试

    程序能一次写完并正常运行的概率很小,基本不超过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() ,运行结果也会包含很多垃圾信息。所以,我们又有第二种方法。