前言一、Bug对于Bug,相信大家都不陌生了吧,有没有人跟你说过你写代码在写Bug呢,如果有人这么说,建议直接干他!哈哈哈。 1.Bug的由来 这是个很有意思的故事,计算机程序之母格雷斯在1947年用世界上第一部万用计算器的进化版——Mark Ⅱ调试程序的的时候,程序总是出现错误,于是他层层排查,苦恼了很久之后,拆开继电器发现里面有一只飞蛾卡在了机器里面,把飞蛾拿出来后,格雷斯竟然… 他将这只飞蛾的尸体粘在了他的工作日记上,并称它为Bug(臭虫)。从此,程序员就与Bug有了不解之缘。毫不夸张的说,Bug是每一个程序员的一生之敌! 我们通常把排除程序中的Bug称为DeBug,俗话说得好,coding五分钟,DeBug两小时,说的是你吗?如果不是的话,那我猜你一定在写Bug的路上… 2.Bug的分类 粗心导致的语法错误SyntaxError #例1a=input('请输入你的年龄:')if a>18:print('你是一个成年人了!')#例2while i>11:print(i) 你能发现这两个例子哪里错了吗?评论区交流起来。语法错误一般系统会给出来错误之处,这方面小伙伴们有哪里的语法不清楚的话,可以查看小沐总结整理的Python学习内容,很全的啦! 知识不熟练导致的错误 如索引越界的问题,方法或函数使用的不对等等。
这里例4中append方法是lst的,用. 而且一次只能添加一个元素。知识点不熟练,那就一个字——练! 思路不清晰导致的问题 这里主要是指我们解决问题的方法有问题。这个可以平时养成写注释的习惯,很有帮助的! 被动掉坑 诸如手抖不小心按了键盘的某个键,0作除数等,面对这种问题我们往往会很懵逼,不知所措。索性,Python提供了异常处理机制,可以在异常出现时及时捕获,然后内部消化,让程序继续运行。 3.异常处理机制 Python提供了异常处理机制,可以在异常出现时及时捕获,然后内部消化,让程序继续运行。 第一种: try except 结构
try:a=int(input('请输入第一个整数:'))b=int(input('请输入第二个整数:'))result=a/bprint('结果为:',result)except ZeroDivisionError:print('除数不能为0')print('程序结束!') 那问题又来了,如果我们程序的异常和我们所写的异常类型不一致该怎么办呢 答:写多个except结构,捕获异常的顺序按照先子类后父亲类的顺序,为了避免遗漏可能出现的异常,可以在最后增加BaseException :
第二种:try…except…else结构 如果try中没有抛出异常,则执行else块,如果try中抛出异常,则执行except块。 try:a=int(input('请输入第一个整数:'))b=int(input('请输入第二个整数:'))result=a/bexcept BaseException as e:print('出错了!')print(e)else:print('结果为:',result)print('程序结束!') 第三种 try…except…else…finally结构 finally块无论是否发生异常都会被执行,常用来释放try块中申请的资源。
4.Python中常见的异常类型
以上只是常见的一些错误类型,更多的还需要大家在编程的时候多多总结呀! 5.traceback模块的使用 Python的异常处理机制中,有一个traceback模块,我们可以使用此模块来打印异常信息。 import tracebacktry:print('_________________________')print(10/0)except:traceback.print_exe() 6.PyCharm的调试模式
总结 今日分享到此结束,由于笔者还在求学之路上辗转徘徊,水平有限,文章中可能有不对之处,还请各位大佬指正,祝愿每一个热爱编程的人都能实现追求,考研上岸进大厂,熬夜秃头卷中王! |
|