当前位置:首页 > 编程教程 > Python教程 > python常见异常

python常见异常
栏目分类:Python教程发布日期:2020-01-18浏览次数:

常见异常 知己知彼才能百战百胜,熟悉了各种异常,知道它们产生的原因,就更容易去解决它们。一个人如果能在编程中熟悉各种异常,它一定会是一个编程高手。 这一节就带大家来认识一下,python中的各种常见异常。 1.NameError NameError是指一个变量名没有定
常见异常
知己知彼才能百战百胜,熟悉了各种异常,知道它们产生的原因,就更容易去解决它们。一个人如果能在编程中熟悉各种异常,它一定会是一个编程高手。
这一节就带大家来认识一下,python中的各种常见异常。

1.NameError

NameError是指一个变量名没有定义,即没有找到该变量。遇到这种错误往往是我们将一个变量名写错,因为我们一般不会真的去执行一个没有定义的变量名。

错误提示:
Traceback (most recent call last):
  File "text.py", line 2, in <module>
    print(stp)
NameError: name 'stp' is not defined
 
修改方法:更正变量名即可。  

2.TypeError


TypeError是类型错误,往往会在不同类型的变量做运算时发生,比如数值和非数值直接做运算。这种错误属于逻辑错误,因为它的产生是伴随着开发者的错误思路。

错误提示:
Traceback (most recent call last):
  File "text.py", line 3, in <module>
    print(a+b)
TypeError: can only concatenate str (not "int") to str
 
修改方法:修改变量类型。

3.ZeroDivisionError

ZeroDivisionError是除数为0的时候会报出的异常,我们知道,除数是不能为0的,但有时,可能通过一些复杂的运算造成某个做除数的变量值被修改成0,而我们没有发现,这时就会提示ZeroDivisionError。
ZeroDivisionError是除数为0的时候会报出的异常,我们知道,除数是不能为0的,但有时,可能通过一些复杂的运算造成某个做除数的变量值被修改成0,而我们没有发现,这时就会提示ZeroDivisionError。

错误提示:
Traceback (most recent call last):
  File "text.py", line 4, in <module>
    c = a / b
ZeroDivisionError: float division by zero
 
修改方法:修改除数的值,不为0即可。

4.IndexError

IndexError是索引错误,往往会出现在列表元组等容器中,错误原因是因为我们访问的数值超出了容器范围,这种错误也属于逻辑错误,因为很显然访问容器之外的值违背基本逻辑。

错误提示:
 
Traceback (most recent call last):
  File "text.py", line 2, in <module>
    print(a[3])
IndexError: list index out of range
 
解决方法:阻止访问的数值超出容器范围即可。

5.KeyError

KeyError是关键字错误,发生在字典里,当我们要通过一个字典的键访问值时,如果这个键不存在,就会提示关键字异常。


错误提示:
Traceback (most recent call last):
  File "text.py", line 2, in <module>
    print(dict['cat'])
KeyError: 'cat'
解决方法:阻止访问字典中不存在的键。


6.AttributeError

 AttributeError是属性错误,一般发生在访问一个类中没有的属性或方法时会提示。

错误提示:
Traceback (most recent call last):
  File "text.py", line 5, in <module>
    a.study()
AttributeError: 'student' object has no attribute 'study'
 
解决方法:检查需要访问的属性是否在类中出现,也或许是属性/方法名写错。

7.ModuleNotFoundError

ModuleNotFoundError是找不到导入的模块时提示的错误,如果是导入标准库模块,不会有这种错误,所以出现这种错误,一定是导入第三方库模块,而该模块有没有提前安装所致。比如导入一个经典的图像处理库opencv的python版本,在python中该模块名为cv2。


错误提示:
Traceback (most recent call last):
  File "text.py", line 1, in <module>
    import cv2
ModuleNotFoundError: No module named 'cv2'
 
解决方法: 使用pip下载第三方库。

8.IndentationError

IndentationError是缩进错误,因为python中的程序结构是靠缩进严格控制的,当出现缩进结构混乱时,就会报缩进错误,这种错误也往往是我们写代码时没有控制好结构的原因。

错误提示:
  File "text.py", line 2
    print(i)
        ^
IndentationError: expected an indented block
解决方法:跳转代码结构,控制好缩进。

9.FileNotFoundError

FileNotFoundError是在打开一个文件时,如果文件找不到就会提示。

错误提示:
Traceback (most recent call last):
  File "text.py", line 1, in <module>
    f = open('foo')
FileNotFoundError: [Errno 2] No such file or directory: 'foo'
 
解决方法:修改文件路径,或者将文件放在当前目录下。

相关热词: python

     
编程入门 编程教程 编程资源 编程问答