《python从入门到入土》----异常及解决
进985 发布于2020-06 浏览:3586 回复:2
2
收藏

从今天起,会不定期的更新关于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 用户代码生成的警告

 

 

欢迎补充!!

收藏
点赞
2
个赞
共2条回复 最后由用户已被禁言回复于2022-04
#3189******30回复于2020-06

PM好主意,以后出错就截图,然后除虫成功再截图一枚

0
#2choleraa回复于2020-06

其实我比较推荐用Notebook来呈现, 写一个小代码, 抛出这种异常. 然后给个解释. 

0
TOP
切换版块