本文為上一個比賽規則的函數測試
利用try-except函數測試是否函數錯誤
1 def gameOver(a,b): 2 if (a>=25 and abs(a-b)>=2 )or(b>=25 and abs(a-b)>=2): 3 return True 4 else: 5 return False 6 ai=[] 7 bi=[] 8 try: 9 for a,b in ((25,25),(26,25),(27,26),(29,25)): 10 if gameOver(a,b): 11 ai.append(a) 12 bi.append(b) 13 except: 14 print('Error') 15 print(ai) 16 print(bi)
這里是先對gameover函數判斷測試
出來的結果是無錯誤(比分都屬於正常比分,其中一隊大於等於25並且領先另一隊2分獲勝)
1 try: 2 probA,probB=0.5,0.5 3 scoreA,scoreB=0,0 4 serving = "A" 5 if serving == "A": 6 if random() < probA: 7 scoreA += 1 8 else: 9 serving="B" 10 else: 11 if random() < probB: 12 scoreB += 1 13 else: 14 serving="A" 15 print(scoreA) 16 print(scoreB) 17 except: 18 print('Error')
這里是對修改后的(因為懶得多次輸入參數)simOneGame(proA,proB)函數進行測試
發現也沒有錯誤的對局比分出現,其結果為24,26(結果不唯一)
1 try: 2 n,scoreA,scoreB=1,24,26 3 winsA, winsB = 0, 0 4 scoreA_ls=[] 5 scoreB_ls=[] 6 for i in range(n): 7 scoreA_ls.append(scoreA) 8 scoreB_ls.append(scoreB) 9 if scoreA > scoreB: 10 winsA += 1 11 else: 12 winsB += 1 13 print(winsA, winsB,scoreA_ls,scoreB_ls) 14 except: 15 print('Error')
這里是對simNGames(n, probA, probB)進行測試,函數結果為隊伍贏得局數
運行后為0,1,[24],[26]