球賽程序測試:dom
首先輸入輸出函數通常沒問題,因此就不測試了。函數
一、simOneGame一局比賽函數:測試
由於這個函數中包含了gameover函數,因此先去測試一下gameover函數:網站
def gameOver(x,c, d): if x!=5: if c>=25 and d>=25: if c-d>2 or d-c>2: return 1 else: if c>=15 and d>=15: if c-d>2 or d-c>2: return 1
這時調用一下函數,賦特殊值試一下:google
def gameOver(x,c, d): if x!=5: if c>=25 and d>=25: if c-d>2 or d-c>2: return 1 else: if c>=15 and d>=15: if c-d>2 or d-c>2: return 1 if gameOvre(1,25,25): print('錯誤') if gameOver(1,25,28): print('正確') if gameOvre(5,15,15): print('錯誤') if gameOver(1,15,18): print('正確')
運行後結果都正確url
接着測試一局比賽的函數:spa
def simOneGame(x,probA, probB): # 進行一場比賽 a=x scoreA, scoreB = 0, 0 # 初始化AB的得分 serving = 'A' # 首先由A發球 while not gameOver(a,scoreA, scoreB): #用while循環來執行比賽 if serving == 'A': if random() < probA: # random() 方法返回隨機生成的一個實數,它在[0,1)範圍內。 scoreA += 1 # 用隨機數來和能力值比較從而分出勝負 else: serving = 'B' else: if random() < probB: scoreB += 1 else: serving = 'A' return scoreA, scoreB
這裏要測試能夠加入一個print語句,輸出結果看看code
從這些數據能夠看出,沒問題。orm
二、測試wuju函數:blog
這個是一次比賽五局三勝的函數:
def wuju(probA,probB): A,B=0,0 for i in range(4): scoreA,scoreB=simOneGame(4,probA,probB) print(scoreA,scoreB) if scoreA>scoreB: A+=1 else: B+=1 if A>B: return 1 elif B>A: return 0 else: scoreA,scoreB=simOneGame(5,probA,probB) if scoreA>scoreB: return 1 else: return 0
也能夠經過賦特殊值測試。
三、simNGames(),屢次比賽函數:
def simNGames(n, probA, probB): #進行N場比賽 winsA, winsB = 0, 0 # 初始化AB的勝場數 for i in range(n): if wuju(probA,probB): winsA += 1 else: winsB += 1 return winsA, winsB
經過print輸出結果看看就知道了。
個人第一個爬蟲:
# -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. """ import requests def getht(url): try: r=requests.get(url,timeout=30) r.raise_for_status() r.encoding='utf-8' return r.text except: return '錯誤' def main(): url="http://baidu.com" print(getht(url)) main()
第一個爬蟲爬百度沒什麼問題:
運行結果就是這樣,
但一旦要爬谷歌的主頁,就出現了問題,運行結果爲錯誤。我猜想是牆的問題
因此我爬了一個轉谷歌的網站,www.google.cn。結果以下:
這是一次的結果,讓咱們爬取20次試試:
這個網站咱們能夠爬取20次沒什麼問題,能夠看出這個網站的粗糙。和google不能比。
使用len()函數就能夠輕鬆計算text的長度:
print("r.text的長度是:{}".format(len(getht(url))))
結果: