完善球赛程序,测试球赛程序和访问百度主页

2222一、用try......except的方法测试球赛程序

首先预测球赛代码为

 1 from random import random
 2 def printInfo():
 3     print("2019310143011")
 4     print("这个程序模拟两个选手A和B的乒乓比赛")
 5     print("程序运行需要A和B的能力值(以0到1之间的小数表示)")
 6 def getInputs():
 7     a = eval(input("请输入选手A的能力值(0-1): "))
 8     b = eval(input("请输入选手B的能力值(0-1): "))
 9     n = eval(input("模拟比赛的场次: "))
10     return a, b, n
11 def simNGames(n, probA, probB):
12     winsA, winsB = 0, 0
13     for i in range(n):
14         scoreA, scoreB = simOneGame(probA, probB)
15         if scoreA > scoreB:
16             winsA += 1
17         else:
18             winsB += 1
19     return winsA, winsB
20 def gameOver(a,b):
21     if a>=10 and b>=10:
22          if abs(a-b)==2:
23              return 1
24     elif a<10 and b<10:
25          if a==11 or b==11:
26              return 1
27     else:
28          return 0
29 def simOneGame(probA,probB):
30     scoreA,scoreB=0,0
31     serving="A"
32     while not gameOver(scoreA,scoreB):
33          if serving=="A":
34              if random()<probA:
35                  scoreA+=1
36              else:
37                  serving="B"
38          else:
39              if random()<probB:
40                  scoreB+=1
41              else:
42                  serving="A"
43          return scoreA,scoreB
44 def printSummary(winsA,winsB):
45      n=winsA+winsB
46      print("竞技分析开始,一共模拟{}场比赛".format(n))
47      print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA,winsA/n))
48      print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB,winsB/n))
49 def main():
50     printInfo()
51     probA,probB,n=getInputs()
52     winsA,winsB=simNGames(n,probA,probB)
53     printSummary(winsA,winsB)
54 main()
55 python3: input("please input any key to exit!")

用try...... except对程序进行测试,代码如下

 1 from random import random
 2 def printIntro():
 3     print("2019310143011")
 4     print("这个程序模拟两个选手A和B的乒乓比赛")
 5     print("程序运行需要A和B的能力值(以0到1之间的小数表示)")
 6 try:
 7     printIntro()
 8 except:
 9     print("prinntIntro error!")
10 def getInputs():
11     a = eval(input("请输入选手A的能力值(0-1): "))
12     b = eval(input("请输入选手B的能力值(0-1): "))
13     n = eval(input("模拟比赛的场次: "))
14     return a, b, n
15 try:
16     getInputs()
17 except:
18     print("getInputs error!")
19 def simNGames(n, probA, probB):
20     winsA, winsB = 0, 0
21     for i in range(n):
22         scoreA, scoreB = simOneGame(probA, probB)
23         if scoreA > scoreB:
24             winsA += 1
25         else:
26             winsB += 1
27     return winsA, winsB
28 try:
29     simNGames(1000,0.5,0.5)
30 except:
31     print("simNGames error!")
32 def gameOver(a,b):
33     if a>=10 and b>=10:
34          if abs(a-b)==2:
35              return 1
36     elif a<10 and b<10:
37          if a==11 or b==11:
38              return 1
39     else:
40          return 0
41 try:
42     gameOver(11)
43 except:
44     print("gameOver error!")
45 def simOneGame(probA, probB):
46     scoreA, scoreB = 0, 0
47     serving = "A"
48     while not gameOver(scoreA, scoreB):
49         if serving == "A":
50             if random() < probA:
51                 scoreA += 1
52             else:
53                 serving="B"
54         else:
55             if random() < probB:
56                 scoreB += 1
57             else:
58                 serving="A"
59     return scoreA, scoreB
60 try:
61     simOneGame(0.1,0.9)
62 except:
63     print("simOneGame error!")
64     
65 def printSummary(winsA, winsB):
66     n = winsA + winsB
67     print("竞技分析开始,共模拟{}场比赛".format(n))
68     print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA, winsA/n))
69     print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB, winsB/n))
70 try:
71     printSummary(560,440)
72 except:
73     print("printSummary error!")
74 def main():
75     printIntro()
76     probA, probB, n = getInputs()
77     winsA, winsB = simNGames(n, probA, probB)
78     printSummary(winsA, winsB)
79 main()

这个代码中,在每个函数后都有try.....except测试了一遍,如果有错误会分别对某个函数进行报错。

为了测试,小编故意写错了一些,所以会有错误,运行结果如下

 二、利用requests库访问百度主页

题目:用requests库的get()函数访问百度地址20次,打印返回状态,text()内容,计算text()属性和content属性所返回网页内容的长度

废话不多说代码如下👇

import requests
def getHTMLText(url):
    try: 
        for i in range(0,20):                   
            r = requests.get(url, timeout=30)
        r.raise_for_status() 
        r.encoding = 'utf-8' 
        return r.status_code,r.text,r.content,len(r.text),len(r.content)  ##返回状态,text和content内容,text()和content()网页的长度
    except:
        return ""
url = "https://www.baidu.com/?tn=80035161_1_dg"
print(getHTMLText(url))

 结果如下👇

 

posted @ 2020-05-17 10:28  slayer~  阅读(197)  评论(0)    收藏  举报