请写出下面这样的程序,检查用户调用时的输入,满足下列条件:
a如果能转换成整型,并且小于等于100,就将其赋值给score变量,否则抛出错误。
b否则,打印提示信息“有错误”。并打印错误信息。
c打印提示信息“无错误”,并且打印score的值。
d无论结果如何,输出“处理完毕”。
答案:
运行测试:
讲解:
答案:
使用print调试法
assert调试法
logging调试法
print调试法:
就是在不确定程序哪里错了时候,在可能的位置进行输出,是最本能和原始的调试方法。
assert调试法:
1凡是用print()来辅助查看的地方,都可以用断言(assert)来替代。
2assert的意思是,表达式n != 0应该是True,否则,根据程序运行的逻辑,后面的代码肯定会出错。
3程序中如果到处充斥着assert,和print()相比也好不到哪去。不过,启动Python解释器时可以用-O参数来关闭assert。
logging调试法:
1logging需要先用import引入。
2logging需要设置记录信息的级别。你可以指定记录信息的级别有debug,info,warning,error等几个级别,当我们指定level=INFO时,logging.debug就不起作用了。同理,指定level=WARNING后,debug和info就不起作用了。这样一来,你可以放心地输出不同级别的信息,也不用删除,最后统一控制输出哪个级别的信息。
logging的另一个好处是通过简单的配置,一条语句可以同时输出到不同的地方,比如console和文件。
解答:
下面是我调试的大致结果:
讲解:
首先需要用到调试时,需要在运行时写成:pyhon3 -m pdb pdbtest.py
其次,调试用到的主要命令有哪些呢:
其实最有用的就是h了。当你忘了或想不起来了,就使用h查看一下就好。“h”列出所有可用命令。“h 可用命令”查看具体使用方法。
另外你也可以使用pdb.set_trace()的方法,其实就是加了一个断点而已。
仅仅通过三道例题,每道题反复练习,你就基本掌握了错误处理和调试的方法。但是真正掌握还需要在实践中不断磨练。
联系客服