当前位置:首页>python>第十篇:Python进阶必备!异常捕获与代码调试,告别报错崩溃,新手写代码不再翻车

第十篇:Python进阶必备!异常捕获与代码调试,告别报错崩溃,新手写代码不再翻车

  • 2026-09-02 17:21:34
第十篇:Python进阶必备!异常捕获与代码调试,告别报错崩溃,新手写代码不再翻车

很多零基础学Python的小伙伴,写完代码最头疼的问题:稍微改两行就报错、程序直接闪退、看不懂报错信息。

明明逻辑没问题,就因为用户输错内容、文件不存在、数据格式不对,程序直接崩溃停止运行,新手瞬间心态炸裂!

前面9篇我们学完了所有Python入门语法和2个实战项目,今天解锁新手进阶刚需技能:异常捕获 + 代码调试。

学会这篇,你的代码将从「勉强能跑」升级为「稳定不崩、健壮耐用」,彻底摆脱新手代码通病,是进阶实战、写项目的必备核心能力!

一、什么是异常?通俗大白话讲解

异常就是程序运行时出现的意外错误。

语法写错是编译错误,运行时突发的意外问题,就是异常。比如:输入非数字、读取不存在的文件、字符串和数字相加、列表取值越界等。

没有异常捕获的代码:一旦出现问题,程序直接终止、闪退、停止运行。

加了异常捕获的代码:出现问题不会崩溃,会友好提示错误,继续运行后续程序。

一句话总结:异常捕获,就是给代码装一层安全气囊,防止程序翻车崩溃!

二、Python异常捕获核心语法(try-except)

新手只需要记住固定万能格式,全网通用,适配所有入门场景:

try:    # 有可能出错的、需要保护的代码    代码逻辑except:    # 出现异常后,执行的提示代码    错误提示

语法拆解(小白必懂)

1、try:存放容易报错的核心代码;

2、except:一旦try里代码报错,立刻执行这里的内容,程序不崩溃;

3、没有报错:except内容不会执行,代码正常运行。

三、零基础实战:输入报错容错(最常用场景)

之前写的猜数字游戏、数值计算代码,输入文字、符号就会直接报错崩溃,用异常捕获一键解决!

# 异常捕获实战:安全数值输入try:    age = int(input("请输入你的年龄:"))    print(f"你的年龄是:{age},输入正确!")except:    print("⚠️ 输入错误!请输入纯整数数字,禁止输入文字、符号、空格!")

运行效果:

输入数字 → 正常执行代码;

输入文字/符号 → 不崩溃,弹出友好错误提示,体验拉满!

四、精准捕获异常:指定错误类型(进阶用法)

通用except可以捕获所有错误,但不够精准。新手推荐掌握两种最高频异常类型,精准排错:

1、ValueError:数值类型错误(输入格式不对、类型转换失败)

2、FileNotFoundError:文件不存在错误(读取本地文件必备)

# 精准捕获不同异常try:    num = int(input("请输入数字:"))    print(100 / num)except ValueError:    print("❌ 格式错误:必须输入纯数字!")except ZeroDivisionError:    print("❌ 运算错误:除数不能为0!")

精准捕获可以区分报错原因,快速定位问题,调试代码效率翻倍!

五、完整语法:try+except+else+finally(全覆盖)

一套完整的异常处理结构,包含四种场景,适配所有实战项目:

✅ try:尝试执行代码

✅ except:报错时执行

✅ else:无报错时执行(正常运行奖励逻辑)

✅ finally:无论是否报错,必须执行(收尾、关闭文件必备)

try:    score = int(input("请输入考试分数:"))except ValueError:    print("❌ 输入格式错误!")else:    print(f"✅ 输入成功!你的分数是:{score}")    if score >= 60:        print("考试及格!")    else:        print("考试不及格!")finally:    print("📌 本次分数录入结束!")

六、实战落地:文件读写容错优化

结合第八篇文件读写知识点,解决「文件不存在报错」的高频问题,让文件操作代码更稳定:

# 带异常捕获的安全读取文件try:    with open("学习记录.txt", "r", encoding="utf-8") as f:        content = f.read()    print("文件读取成功!")    print(content)except FileNotFoundError:    print("❌ 报错提示:未找到该文件,请检查文件名和路径!")except:    print("❌ 文件读取失败,出现未知错误!")

七、小白必备:代码调试技巧(告别瞎改代码)

新手写代码90%的时间都在改错,学会调试,效率直接提升10倍!

1、万能打印调试法(新手首选)

在关键步骤加 print(),打印变量、数据、执行步骤,精准定位哪一步出错:

def get_sum(a, b):    print("传入的a值:", a)    print("传入的b值:", b)    res = a + b    print("计算结果:", res)    return resget_sum(10, 20)

2、IDLE自带调试工具

Python自带IDLE编辑器支持断点调试,可逐行运行代码,查看每一步变量变化,精准排查逻辑漏洞。

3、新手排错核心口诀

报错看最后一行、先看错误类型、再看代码行数、优先检查格式与数据类型。

八、新手高频报错汇总+解决方案

1、ValueError:数据类型不匹配 → 检查输入内容、类型转换是否正确

2、FileNotFoundError:文件不存在 → 核对文件名、文件路径

3、IndexError:列表下标越界 → 检查取值下标是否超出列表长度

4、ZeroDivisionError:除数为0 → 增加判断,禁止0作为除数

5、IndentationError:缩进错误 → 统一4空格缩进,杜绝混用tab和空格

九、综合实战:优化升级版猜数字游戏

用今天学的异常捕获,优化第九篇小游戏,彻底解决闪退问题,代码更专业、更稳定!

import randomdef new_guess_game():    answer = random.randint(1, 100)    count = 0    print("🎉 升级版猜数字游戏(带异常容错)")    while True:        try:            num = int(input("请输入1-100的猜测数字:"))            count += 1            if num > answer:                print("❌ 猜大了!")            elif num < answer:                print("❌ 猜小了!")            else:                print(f"✅ 猜对了!答案{answer},共猜{count}次")                break        except ValueError:            print("⚠️ 输入错误!仅支持输入纯数字,请重新输入!")new_guess_game()

写在最后

异常捕获和代码调试,是新手进阶大神的分水岭。

只会写能跑的代码是入门,能写出稳定、容错、可调试、不崩溃的代码,才是真正具备实战能力。

从这篇开始,你的代码不再脆弱,能够适配各种突发场景,完全满足日常脚本、办公自动化、小型项目的开发需求!

下一篇更新:Python高阶自动化|批量处理Excel表格,职场超实用技能,零基础也能学会批量整理数据、自动统计报表!

持续更新Python进阶实战系列,建议收藏关注我,稳步进阶Python实战!

最新文章

随机文章