🌴 2022.6.10 下午 实验七
实验七 异常处理和单元测试
文章目录
前言
🎬本文章是 【Python语言基础】 专栏的文章,主要是上课的随堂笔记与练习
🔗Python专栏 传送门
📽实验源码已在Github整理
题目一
定义一个利用列表实现队列的类List_Queue,可以实现队列元素进入、删除、求队列长度等功能
定义个异常处理类List_Queue_Exception对类List_Queue中可能出现的异常进行处理
问题分析
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。
通过设计List_Queue类,利用集合保存队列数据,增
list.append()
,
list.pop()
设计List_Queue_Exception类,当队列为空且执行出队操作时,对异常处理
代码
"""
@Author:张时贰
@Date:2022年06月10日
@CSDN:张时贰
@Blog:zhangshier.vip
"""classList_Queue:# 初始化def__init__(self):
self.list1 =[]print('初始化成功!')# 入队defenqueue(self, item):
self.list1.append ( item )print('添加成功!')# 出队defdequeue(self):iflen( self.list1 )>0:print("出队列数据:", self.list1[0])
self.list1.pop (0)else:raise List_Queue_Exception ()# 返回队列长度deflenqueue(self):returnlen( self.list1 )# 输出队列defl_queue(self):print( self.list1 )classList_Queue_Exception( BaseException ):def__init__(self):print("列表为空!")if __name__ =='__main__':
list_queue = List_Queue ()print("-----------------")print("*****1,入队*****")print("*****2,出队*****")print("*****3,队列长度*")print("*****4,显示列表*")print("*****0,退出*")print("-----------------")whileTrue:
x =int(input("输入序号:"))try:if x in[0,1,2,3,4]:if x ==0:print("已经退出")break;elif x ==1:
y =input("请输入输入的数据:")
list_queue.enqueue ( y )elif x ==2:
list_queue.dequeue ()elif x ==3:print("队列长度为:", list_queue.lenqueue ())elif x ==4:
list_queue.l_queue ()else:print("输入有误!")except BaseException as ex:print( ex )
结果

题目二
定义一个实现算术运算的类Arithmetic_Operation,可以实现两个整数的加法、减法、乘法和除法运算
定义一个测试类Test_Arithmetic_Operation对Arithmetic_Operation中的功能进行测试
问题分析
在
Arithmatic_Operation
类中分别设计构造函数、
add()
、
sub()
、
mul()
、
div()
,在
Test_Arithmetic_Operation
类中利用单元测试框架
unittest
对
Arithmatic_Operation
类测试
代码
"""
@Author:张时贰
@Date:2022年06月10日
@CSDN:张时贰
@Blog:zhangshier.vip
"""# 利用unittest框架测试,文件名不要包含特殊符号".、,?"import unittest
classArithmatic_Operation:defadd(self):return self.x + self.y
defsub(self):return self.x - self.y
defmul(self):return self.x*self.y
defdiv(self):return self.x/self.y
def__init__(self, x, y):
self.x = x
self.y = y
classTest_Arithmetic_Operation( unittest.TestCase ):defsetUp(self):
self.op = Arithmatic_Operation (3,5)deftest_add(self):if self.assertEqual ( self.op.add (),8):print("正确")deftest_sub(self):
self.assertEqual ( self.op.sub (),-2)deftest_mul(self):
self.assertEqual ( self.op.mul (),15)deftest_div(self):
self.assertEqual ( self.op.div (),0.6)if __name__ =='__main__':
unittest.main ()
结果

版权归原作者 张时贰 所有, 如有侵权,请联系我们删除。