• Python 实验七 异常处理和单元测试


    🌴 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
    """
    
    
    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 )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73

    结果

    Python实验19

    题目二

    定义一个实现算术运算的类Arithmetic_Operation,可以实现两个整数的加法、减法、乘法和除法运算

    定义一个测试类Test_Arithmetic_Operation对Arithmetic_Operation中的功能进行测试

    问题分析

    Arithmatic_Operation类中分别设计构造函数、add()sub()mul()div(),在Test_Arithmetic_Operation类中利用单元测试框架unittestArithmatic_Operation类测试

    代码

    """
    @Author:张时贰
    @Date:2022年06月10日
    @CSDN:张时贰
    @Blog:zhangshier.vip
    """
    # 利用unittest框架测试,文件名不要包含特殊符号".、,?"
    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 ()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48

    结果

    Python实验20

  • 相关阅读:
    【从零学习python 】62. Python正则表达式:强大的字符串匹配工具
    像游戏一样办公,赋能OA系统转型
    日本it培训就职小技巧
    【Java】常用的文件操作
    多线程案例(线程池篇)
    CentOS7 设置 MySQL 主备同步
    毕业设计-电子商务网站(二)
    【java基础系列】12- java的数组(二)
    电子元器件招标采购商城:优化传统采购业务,提速企业数字化升级
    常用正则表达式(不定时更新)
  • 原文地址:https://blog.csdn.net/qq_49488584/article/details/125525847