程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python 實驗七 異常處理和單元測試

編輯: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 )

結果

題目二

定義一個實現算術運算的類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. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved