最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python学习笔记-python的调试

来源:动视网 责编:小采 时间:2020-11-27 14:27:01
文档

python学习笔记-python的调试

python学习笔记-python的调试:我们在写代码的时候,往往会有一大堆错误。我们该如何调试呢?用print语句打印我们可以用print语句打印我们想要的内容,然后在输出中查看。print "hah"但是在调试之后,我们还需要手动删除print语句,比较麻烦。assert前面用print的地方
推荐度:
导读python学习笔记-python的调试:我们在写代码的时候,往往会有一大堆错误。我们该如何调试呢?用print语句打印我们可以用print语句打印我们想要的内容,然后在输出中查看。print "hah"但是在调试之后,我们还需要手动删除print语句,比较麻烦。assert前面用print的地方


我们在写代码的时候,往往会有一大堆错误。我们该如何调试呢?


用print语句打印

我们可以用print语句打印我们想要的内容,然后在输出中查看。


print "hah"

但是在调试之后,我们还需要手动删除print语句,比较麻烦。


assert

前面用print的地方,我们可以使用assert语句来替代。例如:

def foo(s):
s = int(s)
assert s != 0, "s is Zero"
return 10.0 / s
foo('0')

assert语句后紧跟着一句判断语句,再更着错误信息。如果判断语句不符合,则抛出一个AssertionError.例如:

Traceback (most recent call last):
File "/Users/W/Code/Python/Demo/AssertDemo.py", line 7, in 
foo('0')
File "/Users/W/Code/Python/Demo/AssertDemo.py", line 3, in foo
assert s != 0, "s is Zero"
AssertionError: s is Zero

我们可以在执行的时候带上参数-o统一关闭assert。关闭后,assert语句就不再生效。


logging

可以将print语句替换成logging。logging不会像assert那样抛出错误信息。logging的好处有很多,一个是可以制定输出特定级别的信息。

Level: CRITICAL Numeric value: 50 
Level: ERROR Numeric value: 40
Level: WARNING Numeric value: 30 
Level: INFO Numeric value: 20
Level: DEBUG Numeric value: 10
Level: NOTSET Numeric value: 0

我们可以用

logging.basicConfig(level=logging.DEBUG)

对logging进行简单的配置。小于该level的warning都会被忽略。另外我们也可以对logging输出的位置进行配置,例如是输出到console还是到某一个debug文件。关于更多logging的配置,可以阅读:https://segmentfault.com/a/11...。


调试器 pdb,the python debugger

pdb的启动方式为


python -m pdb test.py

pdb常用的命令


n: 即next,用于执行下一步
l: 应该是list,查看下面要执行的代码
p 变量名: p应该是parameter的首字母,查看某一个变量的值
q: quit, 退出程序

pdb可以控制python的一步一步执行,理论上是万能的debugger。但是在处理很长的代码的时候,显得效率低下。分析一下我们的需求,我们其实是需要在一些关键的点设置一下断点,让我们看一下执行的结果即可,而不是像前面那样查看每一步。接下来我们就来看一下pdb.set_trace().


pdb.set_trace()

我们只需要在让程序暂停的地方写一行代码:


pdb.set_trace()

Python编辑器在遇到pdb.set_trace()时候,程序就会暂停,我们就可以用上面提到的pdb命令来查看各个参数的值了。

当然,很多现代化的IDE比如Pycharm等都提供了很多方便的可视化的debug工具,可以很方便的上手。

文档

python学习笔记-python的调试

python学习笔记-python的调试:我们在写代码的时候,往往会有一大堆错误。我们该如何调试呢?用print语句打印我们可以用print语句打印我们想要的内容,然后在输出中查看。print "hah"但是在调试之后,我们还需要手动删除print语句,比较麻烦。assert前面用print的地方
推荐度:
标签: 笔记 调试 python
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top