Bug
Bug的由来及分类
1.Bug的由来
- 世界上第一部万用计算机的进化版-马克2号
2.Bug的常见类型
-
粗心导致的语法错误SyntaxError,例如
age=input('请输入你的年龄:') if age>=18: print('成年人...')
因为input函数输入的类型均为str类型,age也是str类型,在和整数类型18 进行比较的时候,会出现问题
解决方案:
age=input('请输入你的年龄:') if int(age)>=18: print('成年人...')
1.漏了末尾的冒号,如if语句,循环句子,else子句等
2.缩进错误,该缩进的没缩进,不该缩进的缩进
3.把英文符号携程中文符号,比如说:引号,冒号,括号
4.字符串拼接的时候,把字符串和数字拼接在一起
5.没有定义变量,比如说while的循环条件的变量
6.“==”比较运算符和“=”赋值运算符的混用
-
知识不熟练导致的错误,例如:
(1).索引越界问题IndexError
lst=[11,22,33,44] print(lst[4])
(2).append()方法的使用掌握不熟练
lst=[] lst=append('A','B','C') #应为lst.append('A','B','C') print(lst)
-
思路不清导致的问题解决方案
- (1).使用print()函数
- (2).使用“#”暂时注释部分代码
-
被动掉坑:程序代码逻辑没有错,只是因为用户错误操作或者一些“例外情况”而导致的程序崩溃
-
题目要求:输入两个整数并进行整数运算
a=int(input('请输入一个整数:')) b=int(input('请输入第二个整数:')) result=a/b print('结果为:',result)
当输入的数都为整数时,程序正常运行;但当“疏忽”的时候,第一个输入的数不为整数,或者第二个整数输入为0时,代码就会被动掉坑
-
-
被动掉坑的解决方案
-
Python提供了异常处理机制,可以在异常出现时即时捕获,然后内部“消化”,让程序继续运行
-
捕获异常的顺序按照先子类后父亲类的顺序,为了避免遗漏可能出现的异常,可以在最后增加BaseException
-
try…except…else结构
- 如果try块中没有抛出异常,则执行else块,如果try中抛出异常,则执行except块
- 如果try块中没有抛出异常,则执行else块,如果try中抛出异常,则执行except块
-
try…expect…else…finally结构
- finally块无论是否发生异常都会被执行,能常用来释放try块中申请的资源
-
Python中的常见异常类型