Python 入门
with 语句与异常处理基础
掌握 with 自动关闭和 try-except 异常处理
- 理解 with 语句自动关闭资源
- 用 try-except 捕获异常
- 处理常见错误
with 语句
with 会在代码块结束后自动关闭文件,哪怕中间抛了异常也一样关。
示例代码(可运行)
Python 0%
try-except 捕获异常
程序出错时别直接崩,把错误兜住处理好:
示例代码(可运行)
Python 0%
常见异常类型
示例代码(可运行)
Python 0%
💡异常处理的价值
try-except 让程序在遇到错误时不崩溃,给出友好提示并继续运行。处理文件、网络、用户输入时特别重要。
🐍资深工程师经验谈
异常处理有三条一定要守住的原则:永远不要写裸 except:(会吞掉所有错误包括 KeyboardInterrupt),要捕获具体的异常类型;不要用异常处理来控制正常流程(EAFP 除外:Easier to Ask Forgiveness than Permission 是 Python 的哲学,但要适度);with 语句不仅用于文件——任何实现了 __enter__/__exit__ 的对象都叫「上下文管理器」,线程锁、数据库连接、临时目录都可以用 with。这是 Python 设计得很妙的一个地方。
预测输出
try:
print(10 / 0)
except ZeroDivisionError:
print("出错了")
print("继续")找 Bug用户输入非数字的话,int() 会报 ValueError,程序直接崩。用 try-except 处理就行。
num = int(input("输入数字:"))
print(num + 1)
填空题填写空白处的代码
:
f = open("a.txt")
FileNotFoundError:
print("文件不存在")
选择题
打开不存在的文件会引发什么异常?
选择题
with 语句的主要作用是?
资深工程师加餐
底层原理 · 大厂视角 · 工程经验,点卡片展开
Python 里整数、字符串甚至函数都是对象,堆在内存里;变量不是装东西的盒子,而是一张贴在对象上的「名字标签」(引用)。id(x) 看对象身份,is 比身份、== 比值。CPython 会缓存 -5~256 的小整数,所以 a=1;b=1 时 a is b 为 True,但 a=300;b=300 未必。结论:判断值是否相等永远用 ==,判断是不是 None 才用 is。
挑战任务
安全读取
简单+50 XP
尝试读取不存在的文件,用 try-except 捕获并输出友好提示。
安全读取
Python 0%
2 个测试用例
课后作业
安全除法器
中等+20 XP
输入两个数做除法,捕获除零错误和值错误。
安全除法器
Python 0%
1 个测试用例