【思维导图】python常见的异常(error) 汇总

【点开看大图】
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
python常见的异常(error) 汇总

name error
o尝试访问一个没有申明的变量
oNameError:name ‘xrange’ is not defined
原因:
在Python 3中,range()与xrange()合并为range( )。

我的python版本为python3.5。
解决办法:
将xrange( )函数全部换为range( )。
oNameError: name ‘file’ is not defined
解决思路
原因:python版本升级,函数使用有所变化
解决方法
file函数改为open函数
oName Error: The domain name does not exist
oNameError:name ‘number’ is not defined
zero division error
o除数为0
o代码
try:
 print(5/0)
except ZeroDivisionError:#‘ZeroDivisionError’
 print(“You can’t divide by zero!” )
oZeroDivisionError: float division by zero
错误原因是被除数为0
syntax error
o语法错误
o 1. 符号使用不正确

 例如:只写了半个括号,使用了中文符号等

o 像下面的代码中,76行少了一个右括号。
o2. 代码缩进问题
 python是一种严格依赖缩进的语言,如果缩进不正确或缩进格式不统一,一般错误信息会明确告诉你,但有时也会出现invalid syntax报错。

所谓缩进不正确,python的缩进是四个空格或一个TAB,如果缩进三个空格,一定报错【这个问题似乎不存在】

所谓缩进格式,即不能空格和TAB混用。如果不清楚是否存在混用,可以使用sublime统一调整即可。
Indentation Error:
o递进错误:
Indentation n. 压痕,[物] 刻痕;凹陷;缩排;呈锯齿状
o
IndentationError: unindent does not match any outer indentation level
o
oPython中遇到IndentationError,以后第一时间就要想到,是不是由于TAB键和空格混搭使用了。【个人体验,似乎可以混用的】
o1.对于此错误,最常见的原因是,的确没有对齐。
index error
o索引超出序列范围
oIndexError: too many indices for array
oIndexError: index 14 is out of bounds for axis 1 with size 14
解决思路
索引错误:索引14超出轴1的界限,大小为14
解决方法
 自定义的列表混淆,向上查找正确的自定义参数!参数是df_test_5而不是最最上边定义的df_test参数,因为两者的shape不一样,所以会导致索引错误!
oIndexError Details : list index out of range
key error
o请求一个不存在的字典关键字
#如果不知道dict中是否有key的值
dict.get(key)
#如果用 dict[key] 读取会报KeyError异常
o案例
案例一
最近在使用 format 时,遇到了KeyError的错误KeyError: ‘“book_source_id”’
解决
o在book_source_id前加一层大括号即可
案例二

keyerror一般是你使用字典里不存在的key产生的错误,
io error
https://blog.51cto.com/12306609/2319203
o输入输出错误
o常见问题
1. 文件确实不存在
当错误的输入了一个不存在的文件名,并试图打开它的时候,程序会因为找不到这个文件名而引发IOError错误,这种情况就需要将输入的文件名修改成正确的文件名!
2. 文件写入时遇到IOError错误
该错误引起的原因极有可能是以读取方式打开了文件,并在读取模式中写入文件内容,所以引起错误,正确的方式应该是在读取文件之后记得把文件关闭,当需要写入文件时,要再将文件以W+方式写入。
3. 权限问题导致
当不满足访问该文件的权限时,也会引发IOError错误,要解决该问题,需要超级管理员设置相应的读取和写入权限即可!
attribute error
o尝试访问未知的对象属性
o案例
AttributeError: can’t set attribute

这个错误就是说python找不到对应的对象的属性(def 内的内容),后来我发现竟然是初始化类的时候函数名写错了:
AttributeError: module ‘pandas’ has no attribute ‘Series’
错误原因
o(1)包没有安装成功;
o(2)自己的文件名命名有问题
AttributeError: ‘Light’ object has no attribute ‘light’
大多情况下是由于__init__这个构造方法函数名,写得不正确。
value error
o传给函数的参数类型不正确,比如给int()函数传入字符串形
o案例
ohttps://blog.csdn.net/TCatTime/article/details/88085292?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160569031619724839208715%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=160569031619724839208715&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-3-88085292.first_rank_ecpm_v3_pc_rank_v2&utm_term=valueerror&spm=1018.2118.3001.4449
ValueError: invalid literal for int() with base 10: ‘*’
ValueError: too many values to unpack (expected 2)
Python只允许对字典key的遍历,因此上面的遍历方式是错误的。
ValueError: binary mode doesn’t take an encoding argument
TypeError与ValueError的区别
ovalueerror:函数或方法虽然接受了正确的【类型】的参数,但是该参数的【值】不适当,比如int(‘nick’),
otypeerror:函数或方法接受了不适当的【类型】的参数,比如sum(‘nick’),sum函数不接受字符串类型;
type error
oTypeError: cannot unpack non-iterable NoneType object
函数返回值数量不一致
oTypeError: ‘function’ object is not subscriptable
在tensorflow中使用零矩阵初始化变量的时候出现的:
b = tf.Variable(tf.zeros[1])
这是由于tf.zeros是一个函数,应该有括号,所以应该改为tf.zeros([1])
像这种问题
一般都是由于函数没加括号导致的;
scriptable 可编写脚本的
oTypeError:‘Tensor’ object is not callable
两个tensor 相乘,需要加“ * ”
oTypeError: TensorVariable object does not support item assignment
oTypeError: this constructor takes no arguments

python是一种严格依赖缩进的语言,如果缩进不正确或缩进格式不统一,一般错误信息会明确告诉你,但有时也会出现invalid syntax报错。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

认知计算_茂森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值