Python基础-调试print()-assert-logging-pdb-ide

来源:互联网 发布:淘宝联盟推广软件 编辑:程序博客网 时间:2024/06/01 18:27

打印日志 print()

print()把可能有问题的变量打印出来,简单又粗暴。

断言 assert

凡是用print()来辅助查看的地方,都可以用断言(assert)来替代。

示例

#!/usr/bin/env python3# -*- coding: utf-8 -*-# 断言def fun():    n = int(input())    # 表达式n != 0应该是True,否则,根据程序运行的逻辑,后面的代码肯定会出错    assert n != 0, "n is zero"    print ("you input is ", n)# 运行方法def runTest():    fun()# 运行runTest()

假如输入 0,会收获下面的报错

表达式n != 0应该是True,否则,根据程序运行的逻辑,后面的代码肯定会出错

D:\PythonProject>python main.py0Traceback (most recent call last):  File "main.py", line 16, in <module>    runTest()  File "main.py", line 13, in runTest    fun()  File "main.py", line 7, in fun    assert n != 0, "n is zero"AssertionError: n is zero

logging

把print()替换为logging是第3种方式,和assert比,logging不会抛出错误,而且可以输出到文件.

这个方法,吊吊的,终于有点兴趣了

示例

#!/usr/bin/env python3# -*- coding: utf-8 -*-# loggingimport logging# 这里可以指定日志级别debug,info,warning,error等几个级别logging.basicConfig(level=logging.INFO)logging.info("Hello world")logging.info(10 / 0)

运行结果

D:\PythonProject>python main.pyINFO:root:Hello worldTraceback (most recent call last):  File "main.py", line 9, in <module>    logging.info(10 / 0)ZeroDivisionError: division by zero

单步运行 pdb

启动Python的调试器pdb,让程序以单步方式运行,可以随时查看运行状态。

命令

python -m pdb xxx.py

命令 n 进入下一行

最好使用IDE工具调试方便一些

IDE

如果要比较爽地设置断点、单步执行,就需要一个支持调试功能的IDE。目前比较好的Python IDE有:
Visual Studio Code:https://code.visualstudio.com/,需要安装Python插件。
PyCharm:http://www.jetbrains.com/pycharm/
另外,Eclipse加上pydev插件也可以调试Python程序。

原创粉丝点击