Python实验报告——第9章 异常处理及程序调试

 实验报告

【实验目的】 

1.掌握如何使用异常处理语句捕获和抛出异常。

2.掌握如何使用自带的IDLE工具和断言语句进行调试。

【实验条件】

1.PC机或者远程编程环境。

 

【实验内容】

1.完成第久章 异常处理及程序调试 实例01-04

 

 

实例01:模拟幼儿园分苹果

   在IDLE中创建一个名称为division_apple.py的文件,然后在该文件中定义一个模拟分苹果的函数division(),在该函数中,要求输入苹果的数量和小朋友的数量,然后应用除法算式计算分配的结果,最后调用division()函数。

 

代码如下:

 1 def division():
 2     '''功能:分苹果'''
 3     print("\n==============分苹果了================\n")
 4     apple = int(input("请输入苹果的个数:"))
 5     children = int(input("请输入来了几个小朋友:"))
 6     result = apple // children
 7     remain = apple - result*children    #计算余下苹果
 8     if remain > 0:
 9         print(apple, "个苹果,平均分给", children, "个小朋友,每人分", result, "个。")
10     else:
11         print(apple, "个苹果,平均分给", children, "个小朋友,每人分", result, "个。")
12 
13 if __name__ == '__main__':
14     division()

 

 

 

 运行结果如下:

 

 

 

 

 

 

 

 

 

实例02:模拟幼儿园分苹果(除数不能为0)

   在IDLE中创建一个名称为division apple _0.py 的文件,然后将实例01的代码全部复制到该文件中,并且对“if _name_==' main_':”语句下面的代码进行修改,应用try…except语句捕获执行division()函数可能抛出的ZeroDivisionError(除数为零)异常。

 

代码如下:

 1 def division():
 2     '''功能:分苹果'''
 3     print("\n==============分苹果了================\n")
 4     apple = int(input("请输入苹果的个数:"))
 5     children = int(input("请输入来了几个小朋友:"))
 6     result = apple // children
 7     remain = apple - result*children    #计算余下苹果
 8     if remain > 0:
 9         print(apple, "个苹果,平均分给", children, "个小朋友,每人分", result, "个。")
10     else:
11         print(apple, "个苹果,平均分给", children, "个小朋友,每人分", result, "个。")
12 
13 if __name__ == '__main__':
14     try:
15         division()
16     except ZeroDivisionError:
17         print("\n出错了~_~ —— 苹果不能被0个小朋友分!")

 

 

 运行结果如下:

 

 

 

 

 

 

实例03:模拟幼儿园分苹果(每个人至少分到一个苹果)

  在IDLE中创建一个名称为division_apple_1.py的文件,然后将实例02的代码全部复制到该文件中,并且在第5行代码“children = int(input("请输入来了几个小朋友:")”的下方添加一个if语句,实现当苹果的数量小于小朋友的数量时,应用raise 语句抛出一个ValueError异常,接下来再在最后一行语句的下方添加except语句处理ValueError异常。

 

代码如下:

 1 def division():
 2     '''功能:分苹果'''
 3     print("\n==============分苹果了================\n")
 4     apple = int(input("请输入苹果的个数:"))
 5     children = int(input("请输入来了几个小朋友:"))
 6     if apple < children:
 7         raise ValueError("苹果太少了,不够分...")    #抛出异常(reason)
 8     result = apple // children
 9     remain = apple - result*children    #计算余下苹果
10     if remain > 0:
11         print(apple, "个苹果,平均分给", children, "个小朋友,每人分", result, "个。")
12     else:
13         print(apple, "个苹果,平均分给", children, "个小朋友,每人分", result, "个。")
14 
15 if __name__ == '__main__':
16     try:
17         division()
18     except ZeroDivisionError:
19         print("\n出错了~_~ —— 苹果不能被0个小朋友分!")
20     except ValueError as e:
21         print("\n出错了 ~_~ ——", e)

 

 

 运行结果如下:

 

 

 

 

 

 

实例04:模拟幼儿园分苹果(应用断言调试)

  在IDLE中创建一个名称为division_apple_dug.py的文件,然后将实例01的代码全部复制到该文件中,并且在第5行代码“children = int(input("请输入来了几个小朋友:"))”的下方添加一个assert 语句,验证苹果的数量是否小于小朋友的数量。

 

代码如下:

 1 def division():
 2     '''功能:分苹果'''
 3     print("\n==============分苹果了================\n")
 4     apple = int(input("请输入苹果的个数:"))
 5     children = int(input("请输入来了几个小朋友:"))
 6     assert apple >= children, "苹果不够分"   #应用断言调试
 7     result = apple // children
 8     remain = apple - result*children    #计算余下苹果
 9     if remain > 0:
10         print(apple, "个苹果,平均分给", children, "个小朋友,每人分", result, "个。")
11     else:
12         print(apple, "个苹果,平均分给", children, "个小朋友,每人分", result, "个。")
13 
14 if __name__ == '__main__':
15     division()

 

 

 运行结果如下:

 

 

posted @ 2022-10-27 22:16  五麦  阅读(322)  评论(0编辑  收藏  举报