参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017602696742912
1.print()
简单粗暴,灵活性差
2.assert(断言)
def foo(s):
n = int(s)
assert n != 0, 'n is zero!'
return 10 / n
def main():
foo('0')
assert
的意思是,表达式n != 0
应该是True
,否则,根据程序运行的逻辑,后面的代码肯定会出错。
如果断言失败,assert
语句本身就会抛出AssertionError
:
$ python err.py
Traceback (most recent call last):
...
AssertionError: n is zero!
启动Python解释器时可以用-O
参数来关闭assert
,关闭后,你可以把所有的assert
语句当成pass
来看。
3.logging
import logging
logging.basicConfig(level=logging.INFO)
s = '0'
n = int(s)
logging.info('n = %d' % n)
print(10 / n)
logging
允许你指定记录信息的级别,有debug
,info
,warning
,error
等几个级别。logging
的另一个好处是通过简单的配置,一条语句可以同时输出到不同的地方,比如console和文件。
4.pdb
略