15分钟学Python第6天:异常处理与文件操作

Day 6:异常处理与文件操作

一、异常处理概述

在编程过程中,错误是不可避免的。Python提供了异常处理机制,允许程序在遇到错误时进行处理,而不是直接崩溃。使用异常处理可以提高程序的可靠性和稳定性。

关键术语:
术语描述
异常在程序运行过程中发生的事件,打断正常流程。
捕获使用try...except语句捕获并处理异常。
抛出使用raise语句手动抛出异常。
finally无论是否发生异常,finally块中的代码都会执行。
二、基本异常处理

使用tryexcept语句捕获异常。

示例代码:
try:
    x = 5 / 0  # 除以零错误
except ZeroDivisionError as e:
    print(f"发生错误: {e}")  # 输出: 发生错误: division by zero

代码流程图

+-------------------+
|     开始          |
+-------------------+
         |
         v
+-------------------+
|     try块        |
|       代码       |
+-------------------+
         |
         v
+-------------------+
|     错误检测      |
+-------------------+
         |      |
      错误发生   没有错误
         |      |
         v      v
+-------------------+
|    except块      |   ---> 程序正常工作
+-------------------+
三、捕获多种异常

可以使用多个except块捕获不同类型的异常。

示例代码:
try:
    number = int(input("请输入一个整数: "))
    result = 100 / number
except ValueError:
    print("输入无效,请输入一个整数。")
except ZeroDivisionError:
    print("错误: 不能除以零。")
except Exception as e:
    print(f"发生了一个错误: {e}")

表格:常见异常及其描述

异常类型描述
ValueError输入类型不符合预期
ZeroDivisionError试图将数值除以零
FileNotFoundError指定的文件不存在
IndexError访问序列的索引超出范围
四、使用finallyelse
  • finally块中的代码无论异常是否发生都会执行。
  • else块用于在try块没有发生异常时执行的代码。
示例代码:
try:
    x = 5 / 2
except ZeroDivisionError:
    print("不能除以零")
else:
    print(f"计算结果: {x}")  # 输出: 计算结果: 2.5
finally:
    print("这段代码总是会执行。")

代码执行流程

  1. 执行try块。
  2. 如果无异常,执行else块。
  3. 无论如何,执行finally块。
五、自定义异常

可以通过继承Exception类来创建自定义异常。

示例代码:
class MyCustomError(Exception):
    pass

def test_exception(value):
    if value < 0:
        raise MyCustomError("负值错误:值必须为非负数")

try:
    test_exception(-1)
except MyCustomError as e:
    print(f"发生自定义异常: {e}")
六、文件操作

Python提供了内置函数用于文件操作,主要分为以下几步:

  1. 打开文件。
  2. 读/写文件。
  3. 关闭文件。
1. 打开文件

使用open()函数打开文件。

file = open("example.txt", "w")  # 以写模式打开文件

模式说明表格

模式描述
“r”只读模式
“w”只写模式(覆盖文件)
“a”追加模式(在文件末尾写入)
“b”二进制模式
“t”文本模式(默认模式)
2. 读写文件
写入文件示例
with open("example.txt", "w") as file:
    file.write("Hello, world!\n")
    file.write("这是一个文件操作的示例。")
读取文件示例
with open("example.txt", "r") as file:
    contents = file.read()
    print(contents)
3. 关闭文件

在使用with语句时,文件会自动关闭,不需要显式调用close()

不使用with时关闭文件

file = open("example.txt", "r")
try:
    contents = file.read()
finally:
    file.close()  # 确保文件被关闭
七、异常处理与文件操作结合

在文件操作中可能会出现多种异常,使用异常处理可以确保文件操作的安全性。

示例代码:
try:
    with open("nonexistent.txt", "r") as file:
        contents = file.read()
except FileNotFoundError:
    print("错误: 文件未找到。")
except Exception as e:
    print(f"发生错误: {e}")
相关表格:文件操作可能的异常
异常类型描述
FileNotFoundError指定的文件不存在
IsADirectoryError期望文件但提供了目录
IOError读取或写入文件时发生的输入输出错误

八、项目作业

为了巩固所学知识,请完成以下项目:

  1. 项目描述
    创建一个简单的记账应用程序,能够记录用户的收入和支出,包括如下功能:

    • 添加收入
    • 添加支出
    • 查看所有记录
    • 保存记录到文件
  2. 要求

    • 使用异常处理捕获可能的错误(例如:文件未找到、输入无效等)。
    • 文件存储格式可选择JSON或简单文本。
  3. 示例思路

    • 使用IncomeExpense类分别记录收入和支出,包含属性如amountdescription
    • 主程序中使用with open()打开文件,读取和写入记录。
    • 异常处理确保程序稳健性。

结语

通过本章学习,您应当掌握了异常处理与文件操作的基础,包括如何捕获异常、使用不同模式打开和操作文件,以及如何将两者结合在实际应用中。在实际开发中,良好的异常处理和文件管理是创建稳定应用程序的重要组成部分。


在这里插入图片描述

怎么样今天的内容还满意吗?再次感谢观众老爷的观看。
最后,祝您早日实现财务自由,还请给个赞,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值