Python常见报错及解决方法
1. SyntaxError: invalid syntax
通常由语法错误引起,如缺少括号、冒号或拼写错误。
检查代码中是否有未闭合的括号、缩进错误或关键词拼写错误(如print写成prin)。
示例修正:
# 错误示例
if x == 5
print("x is 5")
# 修正后
if x == 5:
print("x is 5")
2. IndentationError: unexpected indent
缩进错误,Python对缩进敏感。
确保代码块内的缩进一致(通常用4个空格或1个Tab)。
示例修正:
# 错误示例
def func():
print("Hello")
# 修正后
def func():
print("Hello")
3. NameError: name 'x' is not defined
变量或函数未定义就被引用。
检查变量是否拼写正确,或是否在引用前已赋值。
示例修正:
# 错误示例
print(y)
# 修正后
y = 10
print(y)
4. TypeError: unsupported operand type(s)
操作类型不匹配,如字符串与数字相加。
确保操作数的类型一致,必要时进行类型转换。
示例修正:
# 错误示例
result = "10" + 5
# 修正后
result = int("10") + 5
5. IndexError: list index out of range
列表索引超出范围。
检查列表长度,确保索引在有效范围内(0到len(list)-1)。
示例修正:
# 错误示例
my_list = [1, 2]
print(my_list[2])
# 修正后
my_list = [1, 2]
print(my_list[1])
6. KeyError: 'key_name'
字典中不存在的键被访问。
使用dict.get()方法或检查键是否存在。
示例修正:
# 错误示例
my_dict = {"a": 1}
print(my_dict["b"])
# 修正后
my_dict = {"a": 1}
print(my_dict.get("b", "默认值"))
7. AttributeError: object has no attribute
对象没有调用的属性或方法。
检查对象类型是否正确,或是否拼写错误。
示例修正:
# 错误示例
num = 10
num.append(2)
# 修正后
num = [10]
num.append(2)
8. ValueError: invalid literal for int()
类型转换失败,如将非数字字符串转为整数。
确保转换的数据格式正确。
示例修正:
# 错误示例
num = int("abc")
# 修正后
num = int("123")
9. ModuleNotFoundError: No module named 'module_name'
模块未安装或名称错误。
使用pip install module_name安装模块,或检查拼写。
10. ZeroDivisionError: division by zero
除数为零。
添加条件判断避免除零操作。
示例修正:
# 错误示例
result = 10 / 0
# 修正后
denominator = 0
result = 10 / denominator if denominator != 0 else "无效"
通用调试建议
- 使用
print()输出中间变量值。 - 阅读报错信息的最后一行,通常包含错误类型和位置。
- 使用IDE(如PyCharm)或工具(如
pdb)逐步调试。 - 查阅官方文档或社区资源(如Stack Overflow)。
1117

被折叠的 条评论
为什么被折叠?



