本文章是 【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 ()