百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python报错信息一目了然,3个技巧助你快速定位问题

off999 2025-05-24 16:05 58 浏览 0 评论

点赞、收藏、加关注,下次找我不迷路

是不是每次看到代码报错就慌得不行?一堆红红绿绿的英文报错信息,看得头都大了,完全不知道从哪儿下手。别担心,今天咱们就来好好聊聊怎么查看 Python 报错信息,学会这招,你就能轻松应对代码报错,离成为编程高手更近一步啦!


一、认识 Python 报错

写 Python 代码就像开车上路:

  • 代码正常运行 = 汽车在平坦大道顺畅行驶
  • 代码报错 = 路上出现红灯 / 黄灯,提醒停车检查

Python 报错是贴心的「问题指示器」,通过报错信息能快速定位代码问题。如果没有报错,你可能永远不知道代码藏着什么 bug,更难写出正确程序!


二、常见报错类型对比:3 大类错误一目了然

错误类型

是否直接报错

错误提示特征

典型场景

解决思路

记忆口诀

语法错误

包含 SyntaxError 或 IndentationError

括号 / 引号不配对、缩进错误、关键字拼写错

按报错行号检查符号配对和缩进格式

语法错误别慌张,报错位置看前方,符号配对要检查,缩进对齐不能忘

运行时错误

包含具体错误类型(如 ZeroDivisionError)

除数为零、索引越界、类型不匹配等运行期问题

根据错误描述检查数据合法性(如除数是否为零、索引是否超限)

运行错误别着急,追踪信息看仔细,错误类型和描述,找到问题好解决

逻辑错误

否(结果异常)

无明确报错,结果不符合预期

循环次数错误、条件判断逻辑漏洞、算法逻辑错误

通过打印中间变量或调试工具追踪数据变化

逻辑错误要细心,中间结果多打印,调试工具来帮忙,逐步排查没问题

(一)语法错误:代码写法「踩坑」现场

常见语法错误对比表

错误子类

错误提示示例

错误原因

代码示例(错误 vs 正确)

解决工具

括号不配对

SyntaxError: '(' was not closed

括号 / 引号未闭合(如 ( [ { """ 等)

print("hello world # 错误(少右引号)

print("hello world") # 正确

代码编辑器的括号高亮功能

缩进错误

IndentationError: unindent does not match outer level

函数 / 循环 / 条件语句的缩进层级混乱

if True:

print("hi") # 错误(少缩进)

if True:

print("hi") # 正确

使用编辑器自动缩进(Tab 键 / 4 空格)

关键字错误

SyntaxError: invalid syntax

关键字大小写错误或拼写错误(如 Print 代替 print)

Print("hello") # 错误<br>print("hello") # 正确

记住 Python 关键字列表(全小写)

中英文符号混用

SyntaxError: invalid character in identifier

误用中文标点(如中文逗号、冒号)

print('hello','world') # 错误(中文逗号)<br>print('hello', 'world') # 正确

检查标点符号是否为英文半角

(二)运行时错误:代码运行「翻车」现场

常见运行时错误对比表

错误子类

错误提示示例

核心问题

代码示例(错误 vs 正确)

预防技巧

除以零错误

ZeroDivisionError: division by zero

除数为零

c = 10 / 0 # 错误

if b != 0:

c = a / b # 正确

除法前添加 if 除数 != 0 校验

索引错误

IndexError: list index out of range

访问不存在的索引(列表 / 字符串 / 元组)

list = [1,2,3]

print(list[3]) # 错误(索引3超出范围)

print(list[len(list)-1]) # 正确(取最后一个元素)

用 len(容器) 获取长度后计算合法索引

类型错误

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

操作符作用于不支持的类型(如数字 + 字符串)

result = 5 + "3" # 错误result = 5 + int("3") # 正确

操作前检查类型,用 int()/str()/float() 转换

名称错误

NameError: name 'x' is not defined

引用未定义的变量或函数

print(my_var) # 错误(变量未定义)my_var = 10

print(my_var) # 正确

使用变量前先赋值,检查拼写是否正确

键错误

KeyError: 'key'

访问字典中不存在的键

d = {'a':1}

print(d['b']) # 错误

if 'b' in d:

print(d['b'])

else:

print('Key not found') # 正确

使用 in 运算符或 get() 方法检查键是否存在

(三)逻辑错误:无报错但结果错误

错误场景

典型问题

排查方法

示例(错误 vs 正确)

调试工具

循环次数错误

想算 1-10 的和,结果少加 10

在循环内打印 i 和中间结果

for i in range(1,10): # 错误(只到9)

for i in range(1,11): # 正确

用 print(i, sum) 打印中间值

条件判断错误

成绩≥60 算及格,代码写成 if score > 60

测试边界值(如 60 分是否被正确判断)

if score >= 60: # 正确

if score > 60: # 错误(漏掉60分)

使用编辑器断点调试(逐行执行看变量变化)

算法逻辑错误

排序算法结果混乱

打印每一步排序后的列表状态

冒泡排序内层循环未正确比较相邻元素,导致排序错误

PyCharm/VSCode 自带调试器(设置断点单步执行)

三、查看报错信息的「5 步通关法」

步骤

操作要点

核心价值

示例(以除以零错误为例)

1. 看类型

快速定位错误大类(如 ZeroDivisionError 属于运行时错误)

缩小排查范围(语法错误 / 运行时错误 / 逻辑错误)

看到 ZeroDivisionError 就知道是运行时的除数问题

2. 找位置

读取 File "xxx.py", line X 确定报错文件和行号

直接定位到代码中的问题行(可能是该行或其依赖的代码)

报错行是 line 3: c = a / b,重点检查该行的 b 变量

3. 读描述

理解错误详情(如 division by zero 表示除数为零)

明确具体问题(不是所有运行时错误都叫「除以零」!)

知道是因为 b=0 导致除法失败,而不是索引问题

4. 查上下文

检查报错行的上下游代码(如 b 是从哪里来的?是否可能为零?)

避免「头痛医头」(比如上游代码给 b 赋值为 0 未校验)

发现上游 b = 0 是固定值,没有做非零校验,应添加 if b != 0 处理

5. 改代码

根据分析修改后,重新运行并验证结果

确保修改有效(可能需要多次调试)

修改后代码:if b != 0: c = a / b else: c = 0,运行不再报错


四、3 类错误案例

错误类型

错误代码

报错信息关键部分

分析过程

修复方案

语法错误

if True:

print("hi")

IndentationError: expected indented block

if 语句后需缩进代码块,print 未缩进

添加 4 个空格缩进:

if True:

print("hi")

运行时错误

list = [1,2,3]

print(list[3])

IndexError: list index out of range

列表索引最大为 2(0 开始),访问索引 3 越界

改为合法索引:print(list[2]) 或用 len(list)-1 动态获取

逻辑错误

sum = 0

for i in range(10):

sum -= i

无报错,结果为 -45(预期 45)

误将 += 写成 -=,且 range(10) 是 0-9(少加 10)

修正为:

sum = 0

for i in range(1,11):

sum += i

名称错误

print(my_var)

NameError: name 'my_var' is not defined

变量 my_var 未定义

先赋值再使用:

my_var = 10

print(my_var)

键错误

d = {'a':1}

print(d['b'])

KeyError: 'b'

字典 d 中不存在键 'b'

检查键是否存在:

if 'b' in d:

print(d['b'])

else:

print('Key not found')


五、5 大工具轻松应对不同场景

工具

适用场景

核心功能

代码示例

优势

try-except

捕获已知异常,避免程序崩溃

捕获特定类型的异常并处理

try:

result = 10 / 0

except ZeroDivisionError:

print("除数不能为零")

灵活处理异常,程序继续执行

traceback

查看详细错误堆栈信息

打印完整的错误调用栈和上下文

import traceback

try:

1/0

except:

traceback.print_exc()

定位深层嵌套调用中的错误

logging

记录错误信息到日志文件

持久化保存错误信息,便于后续分析

import logging

logging.basicConfig(filename='error.log', level=logging.ERROR)

try:

1/0

except:

logging.error("发生错误", exc_info=True)

适合生产环境,不影响程序正常运行

pdb 调试器

复杂逻辑错误排查

逐行执行代码,查看变量值

import pdb

pdb.set_trace()

a = 1

b = 0

c = a / b

动态调试,直观查看代码执行流程

断言 assert

验证关键逻辑正确性

强制检查条件,不满足则触发错误

assert 1 == 2, "数学定律被打破!"

快速发现隐藏的逻辑错误,提高代码健壮性


六、技巧总结

(一)报错类型速查表

错误类型

报错特征

解决优先级

常用工具

语法错误

红色报错,带 SyntaxError

最高(无法运行)

代码编辑器语法高亮

运行时错误

红色报错,带具体错误类型

次高(运行中断)

错误描述 + 变量检查

逻辑错误

无报错,结果异常

中等(需主动排查)

print() 调试 + 断点调试

(二)新手必备口诀

报错来了别心慌,先看类型再找行,

语法问题查符号,缩进对齐要像样;

运行错误看描述,数据边界别漏掉,

逻辑错误靠打印,中间结果全明了;

五步流程走一遍,代码错误全跑光!

相关推荐

安全教育登录入口平台(安全教育登录入口平台官网)

122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...

大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)

大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...

谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)

要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...

2026-02-04 09:03 off999

电信宽带测速官网入口(电信宽带测速官网入口app)

这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...

植物大战僵尸95版手机下载(植物大战僵尸95 版下载)

1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...

免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)

1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...

2025世界杯赛程表(2025世界杯在哪个国家)

2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...

下载搜狐视频电视剧(搜狐电视剧下载安装)

搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...

pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
永久免费听歌网站(丫丫音乐网)

可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...

音乐格式转换mp3软件(音乐格式转换器免费版)

有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...

电子书txt下载(免费的最全的小说阅读器)

1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...

最好免费观看高清电影(播放免费的最好看的电影)

在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...

孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)

要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...

取消回复欢迎 发表评论: