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 )

结果

Python 实验七 异常处理和单元测试_第1张图片

题目二

定义一个实现算术运算的类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 ()

结果

Python 实验七 异常处理和单元测试_第2张图片

你可能感兴趣的:(Python语言基础,python,单元测试,开发语言)