10 个常见的Python 错误及如何避免它们

news/2025/10/19 12:57:44/文章来源:https://www.cnblogs.com/soda-nav/p/19150739

Python 是一种非常灵活且强大的编程语言,但即使是经验丰富的开发者也可能会犯一些常见的错误。了解这些错误及其解决方法可以帮助你更高效地编写代码,减少调试时间。今天,就让我们一起看看 10 个常见的 Python 错误及如何避免它们。

一、1. 语法错误(SyntaxError)

(一)错误描述

语法错误是 Python 解释器在解析代码时发现的错误,通常是由于拼写错误、缺少括号、缩进不正确等原因引起的。

(二)示例

# 缺少括号
print("Hello, World!"# 缩进错误
def greet():
print("Hello, World!")

(三)解决方法

仔细检查代码的拼写、括号匹配和缩进是否正确。使用代码编辑器的语法检查功能可以帮助快速定位问题次元。

二、2. 名称错误(NameError)

(一)错误描述

名称错误是由于尝试访问一个未定义的变量或函数引起的。

(二)示例

# 未定义的变量
print(undefined_variable)# 未定义的函数
undefined_function()

(三)解决方法

确保所有变量和函数在使用前都已正确定义。检查拼写错误,确保变量和函数名与定义时一致555。

三、3. 类型错误(TypeError)

(一)错误描述

类型错误是由于操作或函数调用中使用了不兼容的数据类型引起的。

(二)示例

# 不兼容的数据类型
result = "10" + 20# 函数调用中使用了错误的类型
my_list = [1, 2, 3]
print(my_list["key"])

(三)解决方法

检查变量的类型,确保操作或函数调用中使用了正确的数据类型。使用 type() 函数可以帮助你确认变量的类型。

四、4. 索引错误(IndexError)

(一)错误描述

索引错误是由于访问列表、元组或字符串等序列时,索引超出范围引起的。

(二)示例

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

(三)解决方法

在访问序列元素时,确保索引在有效范围内。可以使用 len() 函数检查序列的长度Sw520。

五、5. 键错误(KeyError)

(一)错误描述

键错误是由于访问字典时,键不存在引起的。

(二)示例

# 键不存在
my_dict = {'name': 'Alice', 'age': 25}
print(my_dict['city'])

(三)解决方法

在访问字典键时,使用 get() 方法可以避免 KeyError。如果需要检查键是否存在,可以使用 in 关键字。

value = my_dict.get('city', '默认值')
if 'city' in my_dict:print(my_dict['city'])

六、6. 除零错误(ZeroDivisionError)

(一)错误描述

除零错误是由于尝试将一个数除以零引起的。

(二)示例

# 除数为零
result = 10 / 0

(三)解决方法

在进行除法运算时,确保除数不为零。可以使用条件语句检查除数是否为零。

if divisor != 0:result = dividend / divisor
else:print("除数不能为零")

七、7. 缩进错误(IndentationError)

(一)错误描述

缩进错误是由于代码的缩进不正确引起的。Python 使用缩进来表示代码块,因此缩进错误会导致代码无法正确执行。

(二)示例

# 缩进不正确
def greet():
print("Hello, World!")

(三)解决方法

确保代码的缩进一致。使用代码编辑器可以帮助你自动管理缩进。通常,Python 的标准缩进是 4 个空格。

八、8. 文件未找到错误(FileNotFoundError)

(一)错误描述

文件未找到错误是由于尝试打开一个不存在的文件引起的。

(二)示例

# 文件不存在
with open('nonexistent_file.txt', 'r') as file:content = file.read()

(三)解决方法

确保文件路径正确,并且文件确实存在。可以使用 os.path.exists() 函数检查文件是否存在。

import osif os.path.exists('file.txt'):with open('file.txt', 'r') as file:content = file.read()
else:print("文件不存在")

九、9. 属性错误(AttributeError)

(一)错误描述

属性错误是由于尝试访问对象的不存在的属性或方法引起的。

(二)示例

# 不存在的属性
my_list = [1, 2, 3]
print(my_list.upper())

(三)解决方法

确保对象具有你尝试访问的属性或方法。可以使用 hasattr() 函数检查对象是否具有某个属性或方法。

if hasattr(my_list, 'upper'):print(my_list.upper())
else:print("对象没有该属性或方法")

十、10. 逻辑错误

(一)错误描述

逻辑错误是代码没有语法错误,但运行结果不符合预期。这类错误通常源于算法设计或逻辑判断的错误。

(二)示例

# 条件判断错误
def is_even(num):if num % 2 == 1:return Trueelse:return False

(三)解决方法

仔细检查代码的逻辑和算法实现。可以通过打印调试信息、使用调试工具或逐步分析代码逻辑来定位问题。

def is_even(num):if num % 2 == 0:return Trueelse:return False

总结

通过本文的介绍,你已经了解了 10 个常见的 Python 错误及其解决方法。以下是关键点总结:

  1. 语法错误:检查拼写、括号匹配和缩进。
  2. 名称错误:确保变量和函数在使用前已定义。
  3. 类型错误:检查变量类型,确保操作或函数调用中使用了正确的数据类型。
  4. 索引错误:确保索引在有效范围内。
  5. 键错误:使用 get() 方法或 in 关键字检查键是否存在。
  6. 除零错误:确保除数不为零。
  7. 缩进错误:确保代码的缩进一致。
  8. 文件未找到错误:确保文件路径正确,并且文件存在。
  9. 属性错误:确保对象具有你尝试访问的属性或方法。
  10. 逻辑错误:仔细检查代码的逻辑和算法实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/940297.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年手持光谱仪/光谱分析仪/便携式光谱仪厂家推荐榜单:矿石/元素/合金/贵金属分析利器,赛普斯/IF光谱仪精选!

2025年手持光谱仪/光谱分析仪/便携式光谱仪厂家推荐榜单:矿石/元素/合金/贵金属分析利器,赛普斯/IF光谱仪精选!随着科技的不断进步和工业需求的日益增长,手持光谱仪/光谱分析仪/便携式光谱仪在矿石、元素、合金、贵…

平铺窗口合成器杂谈

玩linux 有4-5年了,今天来简单梳理一下linux上我用过的一些平铺窗口合成器,也顺便说一下最近先换的一个合成器--niri 和平铺窗口绑定最多的标签就是 -- “效率提升”,“增加屏幕利用率”,我最初可能就是应为这些标…

微信公众号文章插入附件详细教程-适合于招聘,报名表,公告公示等

在公众号推文插入文档附件链接,是一个很实用的技巧,如果各位童鞋还没有掌握,可以跟着下面步骤学习一下,非常简单。 可用于推文插入添加招聘信息、申请表、登记表、报名表、大赛通知、公示名单、抽签结果、招标公告…

题解:P10514 考试

Solution 对于第 \(i\) 道题,\(k\) 个随机选中的同学全部答对的概率为: \[P_i = \frac{\binom{n - a_i}{k}}{\binom{n}{k}} \]由于题目相互独立,总概率为: \[P = \prod_{i=1}^{m} P_i = \prod_{i=1}^{m} \frac{\bi…

华为昇腾笔记之Mindspeed-LLM 中 MoE 实现机制与重写逻辑总览

🧩 Mindspeed-LLM 的 MoE 实现机制与重写逻辑总览 Mindspeed-LLM 基于 Megatron-Core 的 MoE 框架,在运行前通过一系列 Monkey Patch / Wrapper 注册, 将 Megatron 的核心 MoE 模块(Experts 层、Router 路由层、通…

题解:P12037 [USTCPC 2025] 数学分析

Solution 1. 记号 记 \[I_i = \int^1_0\frac{x^i}{x^2 + 1}\,dx \]则易得 \[\begin{align*} I_0 &= \frac{\pi}{4} \\ I_1 &= \frac{\ln 2}{2} \end{align*} \]\(I_i\) 这个式子不好直接积分,我们想办法化成我…

实时时序上下文推荐系统获KDD最佳论文奖

某中心研究人员在KDD会议上荣获最佳论文奖,论文提出了一种实时时序上下文推荐技术,能自适应追踪用户偏好变化,有效解决冷启动问题,并支持百万级商品目录的高效推荐。实时时序上下文推荐系统获KDD最佳论文奖 在ACM知…

题解:CF1010A Fly

Solution 实数二分板题。 以下字母含义与题面中相同。 注意到答案具有单调性,所以可以二分,即对现在火箭燃料的重量 \(t\) 二分。那 check() 函数怎么写呢? 设 \(sum\) 表示现在火箭的载重,\(t\) 表示现在火箭燃料…

2025年精密磨床/CNC机械加工厂家推荐排行榜,覆盖铣床/车床/磨削/多轴/复合加工,专业非标定制服务首选!

2025年精密磨床/CNC机械加工厂家推荐排行榜,覆盖铣床/车床/磨削/多轴/复合加工,专业非标定制服务首选!随着制造业的快速发展和技术进步,精密磨床和CNC机械加工已成为现代工业不可或缺的重要组成部分。这些设备不仅…

题解:CF1914F Programming Competition

Description 给定一棵树,求不互为祖先的点对的最大个数。 Solution 考虑树形 DP。 设 \(dp_u\) 表示根节点为 \(u\) 的子树的答案。 分类讨论: 设根节点 \(u\) 的重儿子为 \(v\)。当 \(size_v \le \lfloor \frac{siz…

独立开发者找蓝海:新词引流实战

SEO 新词能赚钱(收入/下载) + 很痛(评论密集) + 新(窗口期) = 进入!### 方法论底座:别再“我想做 → 找人 → 没人要”应该是 **Audience → Problem → Product**- 先定人:谁在求助、在哪发声? - 再拆问题:…

使用云服务器搭建飞牛Frp 内网穿透服务

本文将详细指导您如何使用阿里云轻量应用服务器上的宝塔面板搭建 Frp 服务端 (frps),并通过 Feiniu OS 客户端搭建 Frp 客户端 (frpc),实现内网穿透。 一、准备一台有公网 IP 的服务器 (FRPS 服务端搭建) 为了确保穿…

吐槽下小米汽车

吐槽下小米汽车吐槽下小米汽车1、车的马力太大高达220-1100kW,家用车性能错配,时速70码以上时极易打滑甩尾漂移,ESP车身稳定系统提供不了足够的稳定控制,容易出事故,网上有很多这样子的视频。公安部+银保监综合口…

PlayerPrefs持久化保存

PlayerPrefs持久化保存官方文档:PlayerPrefs - Unity 脚本 API 视频教程:Basic Saving and Loading in Unity with PlayerPrefs 1.简介 PlayerPrefs是一个用于存储玩家偏好设定(Player preference)的类,它可以存储…

使用VS2022和Unity时可能出现的问题总结

目前遇到的问题1、2都是在更新VS2022后出现的,也就意味着,每次重新安装/更新VS2022可能都需要重新设置一下。 1.VS2022自动清除Unity命名空间 使用VS2022进行Unity开发时,新建代码保存代码时,它会自动清除命名空间…

2026 中考游记

蒟蒻 A* 是 2026 届初中毕业生喵,马上就要中考了喵。逆风翻盘? 咕在前面 前传:2025 生地中考 游记。 省流:地理 100,生物 96。 按日期来写吧,到最后 100 天再用倒计时格式。 由于是在初三第一学期第一次月考之后…

MinIO 介绍(3)--MinIO 客户端 mc 管理员功能

本文主要介绍 MinIO 客户端 mc 的管理员功能;文中所使用到的软件版本:mc RELEASE.2025-07-21T05-28-08Z、Centos 8.5.2111。 1、概述 MinIO 客户端 mc 命令行工具提供了在 MinIO 中执行管理任务的命令。虽然 mc 支持…

8.16

所以无论真相、爱、世界、痛苦,还是人生,根本都无所谓啊 ————《所以我放弃了音乐》

2025-10-19

2025-10-19nemu的srai似乎有问题,平台选择riscv-nemu时,程序执行到下面代码处 0x80000094: slli a0,a0,0x18 0x80000098: srai a0,a0,0x18执行前$a0的值为0x61,按理说执行完毕后$a0的值应该是0x00000061,但是通过调…

一文读懂隔离见证

比特币的“瘦身”魔法:一文读懂隔离见证 是个什么玩意儿? 你好,好奇的探索者! 你有没有听说过,在比特币的早期,转账手续费特别便宜,几乎可以忽略不计?但后来,网络一拥堵,手续费就变得像“过路费”一样昂贵?…