\'\'\' 1.自顶向下:不断细化分解问题的方法 2.自底向上:不断组合基础方法形成系统 计算思维:抽象 自动化 计算生态:以开源项目为组织形式,充分利用“共识原则”和“社会利他”组织人员,在竞争发展、 相互依存和迅速更迭中完成信息技术的更新换代,形成了技术的自我演化路径。 Python计算生态:>15万个第三方库 https://pypi.org/: 输入功能英文--->获取库--->查看方法并应用 \'\'\' #------------------------------------------------------------------------------------------------------------- #自顶向下实例: from random import random def printIntro():#初始化提示输入 print(\'该程序模拟某两个竞技选手A和B之间的比赛\') print(\'请输入两选手的能力值(0-1之间的小数表示)以及竞技场次数\') def getIputs():#获取选手输入 a,b,n=list(map(eval,input().split(\' \'))) return a,b,n def printSummary(winsA,winsB):#输出模拟比赛结果 n=winsA+winsB print(\'竞技开始时,共模拟{}场比赛。\'.format(n)) print(\'选手A获胜{}场比赛,占比{:0.1%}\'.format(winsA,winsA/n)) print(\'选手B获胜{}场比赛,占比{:0.1%}\'.format(winsB,winsB/n)) def gameOver(a,b):#单场比赛结束标志 return a==15 or b==15 def simOneGame(probA,probB):#模拟一场比赛 scoreA,scoreB=0,0 serving=\'A\' while not gameOver(scoreA,scoreB): if serving==\'A\': if random()<probA: scoreA+=1 else: serving=\'B\' else: if random()<probB: scoreB+=1 else: serving=\'A\' return scoreA,scoreB def simuNGames(n,probA,probB):#模拟所有比赛 winsA,winsB=0,0 for i in range(n): scoreA,scoreB=simOneGame(probA,probB) if scoreA>scoreB: winsA+=1 else: winsB+=1 return winsA,winsB def main():#顶端函数 printIntro() probA,probB,n=getIputs() winsA,winsB=simuNGames(n,probA,probB) printSummary(winsA,winsB) main()