从今天起,会不定期的更新关于python的一些知识或总结吧。
本人小白,大佬勿喷。
身为一名程序猿最重要的是什么?
网络结构?
格子衫牛仔裤?
烦人的项目经理?
错!是改BUG
BUG改不好,不怕没烦恼!
经过这段时间的对paddlepaddle使用,发现熟练的掌握出现的异常类型及解决方法,
有助于快速的写代码!所以下面是对程序中可能出现的错误异常进行整理。
常见异常:
异常类型 | 含义 | 出错原因 |
TypeError | 对类型操作无效 | 1、 传入的参数和规定不符。比如一个函数只能出入字符串,你传入了数值,就会出现错误。 2、 传入的参数与规定的参数数量不符 3、 强行改变字符串或元组中的值。 >>>l=”python” >>>l[0]=”j” 就会出错 4、 注意函数返回时变量的类型与你需要的变量的类型是否一样。 >>>def a(): return “asdd” >>>print(“%c”%a()) 需要char型,却返回的字符串型 |
IndentationError | 缩进错误 | 众所周知,python是一个严格遵守缩进的语言,所以出现此类错误只需要定位到出错位置查查缩进就可了 |
SyntaxWarning | python的语法错误 | 例:全局变量错误 >>>x=0 def func(a,b,c): if a==b: global x x=10 elif b==c: global x x=20 应该改为: >>>x=0 def func(a,b,c): global x if a==b: x=10 elif b==c: x=20 等等等等 |
IOError | 文件异常 | 1、 试图打开并读取一个不存在的文件 2、 试图在一个并不存在的目录中创建文件 3、 试图打开一个没有读访问权限的文件 4、 试图在一个没有写访问权限的目录下创建文件 5、 计算机遇到磁盘错误(或网络错误) |
KeyError | 映射中没有这个键 | 大部分情况是字典中没有对应的键(key) |
IndexError | 序列中没有此索引(index) | 索引大小超出了序列的最大长度 |
ValueError | 传入无效参数 | 1、 试图将一个与数字无关的类型转化成整数。 >>> int(‘asdasdsdasd’) 2、 试图便利字典时同时便利键和值 >>> demo={“name”:xiaoming,”gender”:man} >>>for keys,values in demo: pass 3、所传入函数的参数并不存在 |
ImportError ModuleNotFoundError |
导入模块/对象失败 | 这两中错误都差不多,不过在实验中只找到了第二种错误。主要就是模块不存在或导入出错 |
NameError | 未声明/初始化对象 | >>>dir(_name_) 初学者很容易错误,注意name前面是双下划线,类似的还有__all__,__init__,一般都是双下划线 本质就是变量没有事先声明就使用,导致变量不存在 |
AttributeError | 对象没有这个属性 | 你所引用对象中没有这个属性 |
ZeroDivisionError | 除零(取模)错误 | 很容易理解,0不能做除数或模数,下面例子会出现此类错误 >>>2/0 >>>2%0 |
KeyboardInterrupt | 用户中断执行 | 通常是使用ctrl+c让程序强行停止或使用某个按钮中断程序 |
OverflowError | 数值运算超出最大值 | 各个类型都有它的范围,超过一定的范围就会报错。 |
RuntimeError | 一般的运行错误 | |
AssertionError | 断言语句错误 | 了解这个错误就要了解断言语句 Assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表示为假,其常常用来测试语句 >>>assert 2>3 就会出现异常,因为2>3为False |
不常见异常:
FloatingPointError | 浮点计算错误 |
SystemExit | 解释器请求退出 |
StopIteration | 迭代器没有更多的值 |
GeneratorExit | 生成器(generator)发生异常来通知退出 |
EOFError | 没有内建输入,达到EOF标记 |
UnboundLocalError | 访问未初始化的本地变量 |
OSError | 操作系统错误 |
MemoryError | 内存溢出错误(对于Python 解释器不是致命的) |
ReferenceError | 弱引用(Weak reference)试图访问已经垃圾回收了的对象 |
NotImplementedError | 尚未实现的方法 |
TabError | Tab 和空格混用 |
RuntimeWarning | 可疑的运行时行为(runtime behavior)的警告 |
UnicodeDecodeError | Unicode 解码时的错误 |
UnicodeEncodeError | Unicode 编码时错误 |
UnicodeTranslateError | Unicode 转换时错误 |
UserWarning | 用户代码生成的警告 |
欢迎补充!!
PM好主意,以后出错就截图,然后除虫成功再截图一枚
其实我比较推荐用Notebook来呈现, 写一个小代码, 抛出这种异常. 然后给个解释.