AttributeError
- 当前对象类型并没有你调用的这一方法 / 属性,例如,对于 Python 3,你在一个 List 对象上调用 add 方法(列表没有 add 方法)
SyntaxError
- 忘记在字符串两端都加上单引号
'
(或双引号"
) - 忘记在 def、if、for 行末添加冒号
:
- 左括号与右括号数量不匹配,包括小括号
()
、中括号[]
和大括号{}
TypeError
- 在一个错误类型的对象上执行某个操作,例如,你拿一个 List 对象去除一个整型数字,或是想要改变一个 immutable 类型(如 Tuple, String)变量的值
- 你认为有值的对象其实为 None
- 使用一个非整型数字作为列表的索引
- 在调用一个方法时,传入错误数量或错误类型的参数
IndentationError
- 一个代码块内的代码缩进了但没有对齐
- 在代码缩进时混用了空格和制表位(有些行使用空格缩进,有些则使用制表位),虽然有时这些代码看上去是对齐了的
NameError
-
错拼了一个变量、函数或方法的名字
-
忘记导入对应模块
-
忘记定义该变量
-
在函数定义前调用该函数
-
在变量作用域之外使用该变量,例如,在
for
外使用一个在该for
循环内部定义的一个变量 -
在使用
print
输出单个字符时,忘记给该字符加上引号,例如,你只想输出字母 a,但写成了print(a)
,这是程序会认为你要输出变量a
,但名为 a 的变量并未被定义
IOError
- 你试图打开一个不存在的文件
KeyError
- 你试图从一个字典中获取一个并不存在的
key
的值