球赛程序测试: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))))
结果: