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程序。
阅读全文
0 0
- Python基础-调试print()-assert-logging-pdb-ide
- Python中的调试(assert, logging, pdb, pdb.set_trace(), IDE)
- python pdb 基础调试
- Python pdb基础调试
- python pdb 基础调试
- 7、Python 异常处理、pdb调试&logging
- Python调试代码的4种方法:print、log、pdb、PyCharm的debug
- python pdb 调试器
- pdb 调试python
- Python 调试 PDB
- 调试python程序---pdb
- Python调试利器PDB
- python pdb调试命令
- pdb调试python代码
- pdb调试python脚本
- pdb调试python脚本
- python断点调试pdb
- Python pdb调试
- bzoj1503 [NOI2004]郁闷的出纳员 splay
- Getting Icon Overlays to Work
- 常用Linux命令
- python 列表,元组,字典
- C语言发展简介
- Python基础-调试print()-assert-logging-pdb-ide
- ASN.1编码学习笔记
- 2812: 世界树
- angularjs结合$http、$q服务实现多个异步请求
- 共享文件
- 数据库Emoji表情插入时候抛出异常
- TCP/IP协议原理-TCP的超时重传
- 标题标签
- 解决fasttext内存不足无法读取模型的问题