Python常见报错类型
Python常见报错类型
-
SyntaxError (语法错误)
-
NameError(名称错误)
-
TypeError(类型错误)
-
IndexError(索引错误)
-
KeyError(键错误)
-
ValueError(值错误)
-
AttributeError(属性错误)
-
ZeroDivisionError(零除错误)
1. SyntaxError
说明:代码不符合 Python 的语法规则,解释器无法解析。无法被try-except捕捉
原因:
- 缺少语句
# 可能出现的情况
for in range(10) : # for后缺少循环变量
print('A')
if True # 缺少冒号
print('B')
- 缩进错误(IndentationError 缩进错误,为SyntaxError的子类)
if True: # 语句块缩进错误 或Tab和空格混用
print('if语句')
## 大部分IDE会把tab自动转换成空格
2. NameError
说明:引用了未定义的变量
错误代码:
print(a) # 忘记未定义
num = 0
print(nmu) # 拼写错误
def f():
a = 0
f()
print(a) # 忽略变量作用域
报错信息 :
NameError: name 'a' is not defined
3. TypeError
说明 :使用了不支持的操作。
错误代码:
1 + 'a'
[1]+(2)
报错信息:
TypeError: unsupported operand type(s) for +: 'int' and 'str'
4. ValueError
说明 :数据类型正确,但值不符合要求。
错误代码:
print(int('a'))
l = [1,2,3]
l.remove(5)
报错信息:
-
ValueError: invalid literal for int() with base 10: 'a' -
ValueError: list.remove(x): x not in list
5. IndexError
说明:索引超出边界。
错误代码:
l = [1,2,3]
print(l[3])
报错信息:
IndexError: list index out of range
6. KeyError
说明:访问字典中不存在的键。
错误代码示例:
d = {'a':1, 'b': 2}
print(d['NULL'])
报错信息:
KeyError: 'NULL'
7.AttributeError
说明:对象不存在此方法。
错误代码示例:
n = 1
n.append('8')
报错信息:
AttributeError: 'int' object has no attribute 'append
8.ZeroDivisionError
说明:分母为零。
错误代码示例:
a=1
b=0
print(a/b)
报错信息:
ZeroDivisionError: division by zero
浙公网安备 33010602011771号