一、Bug的由来及分类
(1)粗心导致的语法错误 SyntaxError
自查宝典
漏了末尾的冒号,如if,循环语句,else语句
缩进错误,该缩进的没缩进,不该缩进的瞎缩进
把英文字符携程中文字符,比如说:冒号、引号、括号
字符串拼接的时候,把字符串和数字拼在一起
没有定义变量,比如说while 的循环条件的变量
‘==’比较运算符和‘=’赋值运算符的使用
(2)知识点掌握不熟练导致的错误
索引越界问题 IndexError
lst =[1,2,3,4] print(lst[4])
IndexError: list index out of range
(3)思路不清导致的问题解决方案
使用print()函数
使用‘#’暂时注释部分代码
(4)被动掉坑:用户操作错误或一些例外情况
try:
可能会出现异常的代码
except 异常类型:
报错后执行
try: a = int(input('请输入第一个数字:')) b= int(input('请输入第二个数字:')) c = a / b print(c) except ZeroDivisionError: #异常处理代码 print('除数不能为0奥!')
结果:
请输入第一个数字:10
请输入第二个数字:0
除数不能为0奥!
try...excpt...else..
若try中没有抛出异常,则执行else部分
try: a = int(input('请输入第一个数字:')) b= int(input('请输入第二个数字:')) c = a / b except ZeroDivisionError: print('除数不能为0奥!') else: print('计算结果为:',c)
try..except..else...finally结构
finally块无论是否发生异常都会执行,能用来释放try中申请的资源。
二、Python中常见的异常类型
(1)ZeroDivisionError 除0的异常
(2)IndexError 索引的异常
(3)KeyError 没有键的异常
(4)NameError 未声明/初始化对象
(5)SyntaxError Python语法错误
(6)ValueError 传入无效的参数
三、异常处理机制
使用traceback模块打印异常信息
import traceback
try:
print(‘-----’)
num=10/0
except:
traceback.print_exc()