Bug的由来及分类

Bug的常见类型

粗心导致的语法错误 SyntaxError

  • 漏了末尾的冒号,如if语句,循环语句,else子句等
  • 缩进错误,该缩进的没缩进,不该缩进的缩进了
  • 英文符号写成中文符号,比如说:引号,冒号,括号
  • 字符串拼接的时候,把字符串和数字拼在一起
  • 没有定义变量,比如说while的循环条件的变量
  • ==”比较运算符和“=”赋值运算符的混用

 由知识点不熟练导致的错误

索引越界问题 IndexError

lst=[11,22,33,44]
print(lst[4]) #列表中没有索引为4的元素

append()方法的使用掌握不熟练

lst=[]
lst=append('A','B','C') #lst.append(A) append方法每次只能添加一个数据
print(lst)

由于思路不清晰导致的错误

  • 使用print()函数
  • 使用"#"暂时注释部分代码

Python的异常处理机制

 由于被动掉坑所导致的错误

被动掉坑:程序代码逻辑没有错,只是因为用户错误操作或者一些“例外情况”而导致的程序崩溃

Python提供了异常处理机制,可以在异常出现时即使捕获,然后内部“消化”,让程序继续运行

bug python 官方 python有bug吗_后端

 多个except结构

捕获异常的顺序按照先子类后父类的顺序,为了避免遗漏可能出现的异常,可以在最后增加BaseException

try:
    a=int(input('请输入第一个整数'))
    b=int(input('请输入第二个整数'))
    c=a/b
    print(c)
except ZeroDivisionError:
    print('除数不能为0')
except ValueError:
    print('输入错误')

try...except...else结构

如果try块中没有抛出异常,则执行else块,如果try中抛出异常,则执行except块。

try:
    n1=int(input('请输入一个整数:'))
    n2=int(input('请输入另一个整数:'))
    result=n1/n2
except BaseException as e:
    print('出错了',e)
    print('e')
else:
    print('结果为:',result)

try...except...else...finally结构

finally块无论是否发生异常都会被执行,能常用来释放try块中申请的资源

bug python 官方 python有bug吗_python_02

try:
    n1=int(input('请输入一个整数:'))
    n2=int(input('请输入另一个整数:'))
    result=n1/n2
except BaseException as e:
    print('出错了',e)
    print('e')
else:
    print('结果为:',result)
finally:
    print('无论是否产生异常,总会被执行的代码')
print('程序结束')

 traceback模块

使用traceback模块打印异常信息

bug python 官方 python有bug吗_python_03

Python常见的异常类型

序号

异常类型

描述

1

ZeroDivisionError

除(或取模)零(所有数据类型)

2

IndexError

序列中没有此索引(index)

3

KeyError

映射中没有这个键

4

NameError

未声明/初始化对象(没有属性)

5

SyntaxError

Python语法错误

6

ValueError

传入无效的参数

#print(10/0) #ZeroDivisionError

#a=[1,2,3]
#print(a[3]) #IndexError

#b={'name':'张三','age':20}
#print(b['gender']) #KeyError

#print(c) #NameError

#int a=10 #SyntaxError

#a=int('hello') #ValueError

 PyCharm开发环境的调试

断点

程序运行到此处,暂时挂起,停止执行。此时可以详细观察程序的运行情况,方便做出进一步的判断。

bug python 官方 python有bug吗_缩进_04

进入调试视图的三种方式

  • 单击工具栏上的按钮
  • 右键单击编辑区:点击:debug‘模块名’
  • 快捷键:shift+F9

bug python 官方 python有bug吗_缩进_05

bug python 官方 python有bug吗_python_06

 总结

bug python 官方 python有bug吗_开发语言_07