python各种报错汇总(随机更新……)

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。

异常名称描述
ArithmeticError所有数值计算错误的基类,常见于试图访问一个不存在的对象
AssertionError断言语句失败断言语句不符合条件下时会抛出此异常
AttributeError对象没有这个属性,特性引用和赋值失败时会引发属性错误 如果是调用的标准模块或者第三方模块,确认是否出现自定义文件或目录与其重名
BaseException所有异常的基类
DeprecationWarning关于被弃用的特征的警告
EnvironmentError操作系统错误的基类
EOFError没有内建输入,到达EOF 标记
Exception常规错误的基类
FloatingPointError浮点计算错误
FutureWarning关于构造将来语义会有改变的警告
GeneratorExit生成器(generator)发生异常来通知退出
ImportError导入模块/对象失败
IndentationError缩进错误
IndexError序列中没有此索引(index),索引错误,使用的索引不存在,常索引超出序列范围,序列中没有此索引(index)
IOError输入/输出操作失败:文件确实不存在、文件写入时遇到IOError错误、权限问题导致
KeyboardInterrupt用户中断执行(通常是输入^C)
KeyError映射中没有这个键,读取字典中的key和value时,如果key不存在,就会触发KeyError错误。
LookupError无效数据查询的基类
MemoryError内存溢出错误(对于Python 解释器不是致命的)
NameError未声明/初始化对象 (没有属性),试图访问的变量名不存在
NotImplementedError尚未实现的方法
OSError操作系统错误
OverflowError数值运算超出最大限制
OverflowWarning旧的关于自动提升为长整型(long)的警告
PendingDeprecationWarning关于特性将会被废弃的警告
ReferenceError弱引用(Weak reference)试图访问已经垃圾回收了的对象
RuntimeError一般的运行时错误
RuntimeWarning可疑的运行时行为(runtime behavior)的警告
StandardError所有的内建标准异常的基类
StopIteration迭代器没有更多的值
SyntaxErrorPython 语法错误
SyntaxWarning可疑的语法的警告
SystemError一般的解释器系统错误,语法错误,代码形式错误
SystemExit解释器请求退出
TabErrorTab 和空格混用
TypeError对类型无效的操作,对象用来表示值的类型非预期类型时发生的错误
UnboundLocalError访问未初始化的本地变量
UnicodeDecodeErrorUnicode 解码时的错误
UnicodeEncodeErrorUnicode 编码时错误
UnicodeErrorUnicode 相关的错误
UnicodeTranslateErrorUnicode 转换时错误
UserWarning用户代码生成的警告
ValueError传入无效的参数
Warning警告的基类
WindowsError系统调用失败
ZeroDivisionError除(或取模)零 (所有数据类型)

一、TypeError:类型错误,对象用来表示值的类型非预期类型时发生的错误

  • 错误例子:

           age=18

           print(‘我的年龄是’+age)

  • 报错信息:TypeError: can only concatenate str (not "int") to str

        (这是类型错误,提示必须是一个字符串,不能是数字。)

  • 解决方法:在使用“+”做拼接的时候,必须使用字符串,或者把数字转化成字符串。
  • 正确代码:

          age=18

          print(‘我的年龄是’+str(age))

二、AttributeError:属性错误,特性引用和赋值失败时会引发属性错误

  • 错误例子:

          tp=('1','3','5')

          tp.append('7')

          print(tp)

  • 报错信息:AttributeError: 'tuple' object has no attribute 'append'

        提示:  属性错误:元组对象没有“append”的属性,简单来说元组是不可变对象

  • 解决方法:把元组换成列表。

三、NameError:试图访问的变量名不存在。

  • 举个简单的例子,只运行一行print(a),会报错:NameError: name 'a' is not defined。
  • 简单来说,就是变量a没有定义,解决方法是在前面给a赋值,比如加上一行a=''。
  • 还有一种需要小心处理的是:变量或者函数名拼写错误。如:

          name= '卡西'

         print('My name is ' + nane)

        报错信息和上面一样:NameError: name 'nane' is not defined。这类错误只要根据报错信息,细心检查下拼写,就能很快解决~

四、SyntaxError:语法错误,代码形式错误

        

  • 报错信息为:SyntaxError: invalid syntax

          提示是:语法错误,非法的语法。

  • 解决方法:

         当报错的时候,要注意回到错误信息的那一行,然后从下往上,慢慢查找,此处这个程序就是因为if语法忘了在判断语句后面加“:”,所以导致的错误。

        另外,初学者写代码时要注意使用英文符号,这是大家经常犯的错误

         

五、KeyError:在读取字典中的key和value时,如果key不存在,就会触发KeyError错误。

  • 举个小栗子:

          dict={'a':1,'b':2,'c':3}

          print(dict['d'])

         报错信息为:KeyError: 'd'。

  • 第一种解决方法,首先测试key是否存在,然后才进行下一步操作,如:

          

 

六、IndexError:索引错误,使用的索引不存在,常索引超出序列范围,序列中没有此索引(index)

        

 

  • 报错信息:IndexError: list index out of range

          提示:索引错误,列表索引超出了范围。

  • 解决办法:

         回头看列表的长度,索引是要小于列表的长度的。上面的列表长度是5,而索引却要打印第七个,所以是超出了列表的长度

七、IndentationError:缩进错误

        

 

  • 报错:IndentationError: expected an indented block

          原因:缩进有误,Python的缩进非常严格,行首多个空格,少个空格都会报错。

          由于不熟悉python编码规则,不易查找,所以会成为新手常犯的一个错误。像def,class,if,for,while等代码块都需要缩进。

八、TabError: Tab 和空格混用

       相邻的两句的缩进需要统一使用tab或统一使用空格,不能混用。否则就会出现以下报错:TabError: inconsistent use of tabs and spaces in indentation。

  • tab键本质上是制表符,而不是缩进符,不同的文本编辑器中制表符代表的空格宽度不一,如果代码需要跨平台或跨编辑器读写,建议不要使用制表符(tab键)。

        心得:inconsistent use of tabs and spaces in indentation

        错误处理方法:

       把报错的行光标放到第一个字母前,backspace直接删除到和上一行接起来,然后按回车就行了。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值