我们在写python程序的时候经常会遇到一些报错信息(异常),有一些可能是人为进行的定义,有一些则是python内置的一些异常信息,接下来我们来了解一下这些常见的异常一些,也能够在我们遇到问题的时候能够更好更快的定位到问题。

SyntaxError

SyntaxError是非常常见的一种问题,一般我们也能很快看出来,这是python的语法错误,是指我们写的代码语法错了,一般的编译工具也会给出错误提示,很好定位并改正。

if 5>2;print(True)--------------------------------------------->>>    if 5>2;>>>          ^>>>SyntaxError: invalid syntax

NameError

NameError是指某个变量在python中未进行定义错误,所以代码无法识别出这个变量是什么,就好比每个人都需要有户口,身份证一样,否则别人不能够明确认识到你。

print(a)------------------------------------------------>>>    print(a)>>>NameError: name 'a' is not defined

TypeError

类型错误,python有几种基础的数据类型,每种类型有各自的一些特殊用法,不能够张冠李戴,在使用某种方法的时候,注意这种数据类型是否支持。

a = '123'print(a+1)----------------------------------------------------->>>    print(a+1)>>>TypeError: must be str, not int


IndentationError




缩进错误,严格意义来说这也属于语法错误的一种,但是比较常见,pyhon不同于java,语法格式需要缩进空格,缩进空格字符不对应则会报这个错误。




if 5>2:print(True)-------------------------------------------->>>    print(True)        ^>>>IndentationError: expected an indented block

IndexError

索引错误,经常可能出现我们在读取列表某个下标的元素的时候发生的一些错误。例如如下,索引最大为3,此时索引为3,则数组超标的错误。

list1 = ['a','b',3]print(list1[3])-------------------------------------------->>>    print(list1[3])>>>IndexError: list index out of range

FileNotFoundError

找不到文件错误,即当我们读取或者操作某文件时,我们定义的路径下并没有此文件。

f = open(r'E:\Python\selenium\readmine.txt','r')------------------------------------------------->>>    f = open(r'E:\Python\selenium\readmine.txt','r')>>>FileNotFoundError: [Errno 2] No such file or directory: 'E:\\Python\\selenium\\readmine.txt'
ModuleNotFoundError

导包错误,导入一个不存在的包。

import oss---------------------------------------------->>>    import oss>>>ModuleNotFoundError: No module named 'oss'

KeyError

映射中键错误,例如一个字段,读取一个不存在的key。

dict1 = {'a':1,'b':2}print(dict1['c'])--------------------------------------------->>>    print(dict1['c'])>>>KeyError: 'c'

ValueError

映射中值错误,调用一个不存在的值。

str1 = 'abcde'print(str1.index('f'))----------------------------------------------------->>>    print(str1.index('f'))>>>ValueError: substring not found

AttributeError

属性错误,调用对象不存在的一个方法属性时将报这个错误。

str1 = 'abcde'print(str1.append('f'))---------------------------------------------------->>>    print(str1.append('f'))>>>AttributeError: 'str' object has no attribute 'append'

UnicodeDecodeError

解码错误,这种错误经常在读取文件时报错。

f = open(r'./readmine.txt','r',encoding='gbk')print(f.readlines())----------------------------------------------->>>    print(f.readlines())>>>UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 14: illegal multibyte sequence