首页 > Python资料 博客日记

新手必看!17 个常见的 Python 运行时错误及解决方案

2025-01-16 12:30:08Python资料围观11

Python资料网推荐新手必看!17 个常见的 Python 运行时错误及解决方案这篇文章给大家,欢迎收藏Python资料网享受知识的乐趣

大家好,我是老邓!今天我们来聊聊新手在学习 Python 过程中经常会遇到的 17 个运行时错误,并给出相应的解决方案。

1. NameError: name 'xxx' is not defined

错误原因: 变量名拼写错误或未定义。

解决方案: 检查变量名是否正确,确保在使用变量之前先定义它。

# 错误示例
print(my_variabel)  # 拼写错误

# 正确示例
my_variable = 10
print(my_variable)

2. TypeError: unsupported operand type(s) for +: 'int' and 'str'

错误原因: 对不同类型的变量进行不支持的操作,例如将整数和字符串相加。

解决方案: 确保操作数类型兼容,可以使用类型转换函数 (例如 str()、int()、float()) 进行转换。


# 错误示例
num = 10
text = "5"
print(num + text)  # 类型不兼容

# 正确示例
print(num + int(text))  # 将字符串转换为整数

3. TypeError: 'str' object is not callable

错误原因: 将字符串当作函数调用。

解决方案: 检查代码逻辑,确保没有将字符串当作函数使用。


# 错误示例
my_string = "hello"
my_string()  # 将字符串当作函数调用

# 正确示例
print(my_string)  # 打印字符串

4. IndexError: list index out of range

错误原因: 访问列表中不存在的索引。

解决方案: 确保索引值在列表的有效范围内 (0 到 len(list)-1)。

# 错误示例
my_list = [1, 2, 3]
print(my_list[3])  # 索引超出范围

# 正确示例
print(my_list[2])  # 最后一个元素的索引为 2

5. KeyError: 'xxx'

错误原因: 访问字典中不存在的键。

解决方案: 确保键存在于字典中,可以使用 in 运算符或 get() 方法检查键是否存在。

# 错误示例
my_dict = {"a": 1, "b": 2}
print(my_dict["c"])  # 键 "c" 不存在

# 正确示例
if "c" in my_dict:
    print(my_dict["c"])
else:
    print("键 'c' 不存在")

6. ValueError: invalid literal for int() with base 10: 'xxx'

错误原因: 使用 int() 函数将无法转换为整数的字符串转换为整数。

解决方案: 确保字符串只包含数字字符,可以使用 try-except 块处理转换错误。

# 错误示例
text = "abc"
num = int(text)  # 无法转换为整数

# 正确示例
try:
    num = int(text)
except ValueError:
    print("无法将字符串转换为整数")

7. ZeroDivisionError: division by zero

错误原因: 除数为零。

解决方案: 确保除数不为零,可以使用 if 语句进行判断。

# 错误示例
num = 10 / 0  # 除数为零

# 正确示例
if denominator != 0:
    num = numerator / denominator
else:
    print("除数不能为零")

8. AttributeError: 'xxx' object has no attribute 'yyy'

错误原因: 访问对象不存在的属性或方法。

解决方案: 检查对象类型,确保属性或方法存在。


# 错误示例
my_list = [1, 2, 3]
my_list.appendt(4)  # 拼写错误

# 正确示例
my_list.append(4)

9. FileNotFoundError: [Errno 2] No such file or directory: 'xxx'

错误原因: 文件或目录不存在。

解决方案: 检查文件路径是否正确,确保文件存在。

# 错误示例
file = open("my_fiel.txt", "r")  # 文件名拼写错误

# 正确示例
file = open("my_file.txt", "r")

10. IndentationError: expected an indented block

错误原因: 代码缩进错误。

解决方案: 确保代码块正确缩进,Python 使用缩进表示代码块。

# 错误示例
if x > 5:
print("x 大于 5")  # 缺少缩进

# 正确示例
if x > 5:
    print("x 大于 5")

11. SyntaxError: invalid syntax

错误原因: 代码语法错误。

解决方案: 检查代码语法是否正确,例如括号是否匹配、运算符是否正确等等。

# 错误示例
print "hello"  # 缺少括号

# 正确示例
print("hello")

12. TypeError: 'list' object cannot be interpreted as an integer

错误原因: 将列表当作整数使用,例如在 range() 函数中。

解决方案:  使用 len() 函数获取列表长度作为整数参数。

# 错误示例
my_list = [1, 2, 3]
for i in range(my_list): # 错误

# 正确示例
for i in range(len(my_list)): # 正确
    print(my_list[i])

13. TypeError: missing 1 required positional argument: 'xxx'

错误原因: 调用函数时缺少必要的参数。

解决方案:  提供所有必要的参数。

# 错误示例
def my_function(x, y):
    print(x + y)

my_function(5) # 缺少参数 y

# 正确示例
my_function(5, 10)

14. UnboundLocalError: local variable 'xxx' referenced before assignment

错误原因: 在函数内部修改全局变量之前使用了它。

解决方案:  在函数内部使用 global 关键字声明要修改的全局变量。

# 错误示例
x = 10 

def my_function():
    x += 5  # 错误:试图修改全局变量 x
    print(x)

my_function()

# 正确示例
x = 10

def my_function():
    global x 
    x += 5
    print(x)

my_function()

15. RecursionError: maximum recursion depth exceeded

错误原因: 递归函数调用次数过多,超过了最大递归深度。

解决方案:  检查递归函数的终止条件是否正确,避免无限递归。可以尝试增加递归深度限制,但不建议作为常用解决方案。

# 错误示例 (无限递归)
def my_function(x):
    my_function(x + 1)

my_function(1)

# 正确示例
def my_function(x):
    if x > 5:
        return
    my_function(x + 1)

my_function(1)

16. ImportError: No module named 'xxx'

错误原因: 导入的模块不存在。

解决方案:  检查模块名是否正确,确保模块已安装。可以使用 pip install xxx 命令安装模块。

# 错误示例
import my_moduel # 模块名拼写错误

# 正确示例
import my_module

17. TypeError: can only concatenate str (not "int") to str

错误原因:  只能将字符串与字符串拼接,不能将字符串与其他类型 (例如整数) 直接拼接。

解决方案:  使用 str() 函数将其他类型转换为字符串再进行拼接。

# 错误示例
age = 25
print("我的年龄是: " + age) # 错误

# 正确示例
print("我的年龄是: " + str(age)) # 正确

希望以上内容能够帮助大家更好地理解和解决 Python 运行时错误!

全套Python学习资料分享:

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

三、python入门资料大全

四、python进阶资料大全

五、python爬虫专栏

六、入门学习视频全套

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

七、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

八、python最新面试题


版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐