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