实验七
🌴 2022.6.10 下午 实验七
实验七 异常处理和单元测试
题目一
定义一个利用列表实现队列的类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:zhsher.cn """
class List_Queue: def __init__(self): self.list1 = [ ] print ( '初始化成功!' )
def enqueue(self, item): self.list1.append ( item ) print ( '添加成功!' )
def dequeue(self): if len ( self.list1 ) > 0: print ( "出队列数据:", self.list1[ 0 ] ) self.list1.pop ( 0 ) else: raise List_Queue_Exception ()
def lenqueue(self): return len ( self.list1 )
def l_queue(self): print ( self.list1 )
class List_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 ( "-----------------" ) while True:
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:zhsher.cn """
import unittest
class Arithmatic_Operation: def add(self): return self.x + self.y
def sub(self): return self.x - self.y
def mul(self): return self.x*self.y
def div(self): return self.x/self.y
def __init__(self, x, y): self.x = x self.y = y
class Test_Arithmetic_Operation ( unittest.TestCase ): def setUp(self): self.op = Arithmatic_Operation ( 3, 5 )
def test_add(self): if self.assertEqual ( self.op.add (), 8 ): print ( "正确" )
def test_sub(self): self.assertEqual ( self.op.sub (), -2 )
def test_mul(self): self.assertEqual ( self.op.mul (), 15 )
def test_div(self): self.assertEqual ( self.op.div (), 0.6 )
if __name__ == '__main__': unittest.main ()
|
结果
