Python程序设计思想
1。自顶向下设计
2。自底向上执行
例如:体育竞技代码
1。自顶向下设计
#Games.py
from random import random
def printIntro():
print("模拟两个选手A和B的某种竞技比赛")
print("程序运行需要A和B的能力值(0~1之间的小数表示)")
def getInputs():
a=eval(input("请输入选手A的能力值:"))
b=eval(input("请输入选手B的能力值:"))
n=eval(input("模拟比赛的场次数量:"))
return a,b,n
def simNGames(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 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 printSummary(winA,winB):
n=winA+winB
print("共模拟{}场比赛".format(n))
print("A赢得的比赛场数为{},占比{:0.1%}".format(winA,winA/n))
print("B赢得的比赛场数为{},占比{:0.1%}".format(winB,winB/n))
def main():
printIntro()
proA,proB,n=getInputs()
winsA,winsB=simNGames(n,proA,proB)
printSummary(winsA,winsB)
main()
2。自底向上执行
执行中等规模程序的最好方法是从结构图最底层开始,然后逐步上升。或者说先运行和测试每一个基本函数,再测试由基础函数组成的整体函数,这样有助于定位错误。
Python解释器提供import保留字辅助开展测试单元,语法格式如下:
import <源文件名称>
注意源文件名称不能出现句号(.)
例如对上述代码的gameover()函数进行单元测试,代码如下:
>>>import Games
>>>Games.gameover(15,10)
True