Python 异常处理实验报告 本实验报告的目的是通过实验,掌握 Python 对各处异常类型的处理方法,包括抛出异常、调试程序及断言等。实验内容包括三个部分:实验 1:边框绘制函数的异常处理,实验 2:抛硬币游戏的异常处理,实验 3:输入姓名和月工资计算年薪的异常处理。 一、实验 1:边框绘制函数的异常处理 在实验 1 中,我们需要对边框绘制函数进行异常处理。函数的代码如下所示: ``` def boxPrint(symbol, width, height): print(symbol * width) for i in range(height - 2): print(symbol + (' ' * (width - 2)) + symbol) print(symbol * width) ``` 在这个函数中,我们没有对输入参数进行任何限制,事实上,第一个参数指符号的类型,它必需是长度为 1 的单个字符串。第二和第三个个参数分别指边框的长与宽,这两个参数值必需是大于 2 的值。 为了处理这些异常,我们可以添加以下代码: ``` def boxPrint(symbol, width, height): if not isinstance(symbol, str) or len(symbol) != 1: raise ValueError("符号类型必须是长度为 1 的单个字符串") if width <= 2 or height <= 2: raise ValueError("边框的长和宽必须大于 2") print(symbol * width) for i in range(height - 2): print(symbol + (' ' * (width - 2)) + symbol) print(symbol * width) ``` 通过添加这些异常处理代码,我们可以确保函数在执行时能够正确地处理输入参数的异常情况。 二、实验 2:抛硬币游戏的异常处理 在实验 2 中,我们需要设计一个抛硬币游戏,让用户猜结果出现的是正面还是反面,并对用户输入的其他结果进行异常处理。游戏的代码如下所示: ``` import random def coin_flip(): result = random.randint(0, 1) if result == 0: return "正面" else: return "反面" def game(): while True: user_input = input("请输入猜测结果(正面或反面):") if user_input not in ["正面", "反面"]: raise ValueError("输入结果必须是正面或反面") result = coin_flip() if user_input == result: print("祝贺你,猜测正确!") else: print("很抱歉,猜测错误。") game() ``` 在这个游戏中,我们使用 `random` 模块来生成随机数,然后根据生成的结果来确定抛硬币的结果。同时,我们还添加了异常处理代码来处理用户输入的其他结果。 三、实验 3:输入姓名和月工资计算年薪的异常处理 在实验 3 中,我们需要设计一个程序来输入姓名和月工资计算年薪,如果输入格式不正确则抛出异常。程序的代码如下所示: ``` def calculate_salary(name, monthly_salary): if not isinstance(name, str) or not name: raise ValueError("姓名必须是非空字符串") if not isinstance(monthly_salary, (int, float)) or monthly_salary <= 0: raise ValueError("月工资必须是正数") annual_salary = monthly_salary * 12 return annual_salary def main(): while True: name = input("请输入姓名:") monthly_salary = input("请输入月工资:") try: monthly_salary = float(monthly_salary) annual_salary = calculate_salary(name, monthly_salary) print(f"{name} 的年薪是 {annual_salary:.2f}") except ValueError as e: print(f"错误信息:{e}") main() ``` 在这个程序中,我们添加了异常处理代码来处理输入姓名和月工资的异常情况,同时我们还使用 `try` 和 `except` 语句来捕捉异常。 本实验报告中,我们学习了 Python 异常处理的方法,包括抛出异常、调试程序及断言等。通过三个实验,我们掌握了如何在 Python 中处理各种异常情况。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助