【20171011】python_语言设计(6)程序设计方法与面向对象程序设计

来源:互联网 发布:怎么看电脑端口号 编辑:程序博客网 时间:2024/06/06 09:46

1.程序设计方法
计算思维:给定有限资源、设定并行流程、得出最好效果
2.自顶向下的设计

from random import*def main():    printIntro()    probA,probB,n=getInputs()    winsA,winsB=simNGames(n,probA,probB)    PrintSummary(winsA,winsB)def printIntro():    print('This program simulates a game between two')    print('There are two players,A and B')    print('Probability(a number between 0 and 1)is used')def getInputs():    a=eval(input('What is the prob.player A wins?'))    b=eval(input('What is the prob.player B wins?'))    n=eval(input('How many games to simulate?'))    return a,b,ndef simNGames(n,probA,probB):    winsA=0    winsB=0    for i in range(n):        scoreA,scoreB=simOneGame(probA,probB)        if scoreA>scoreB:            winsA=winsA+1        else:            winsB=winsB+1    return winsA,winsBdef simOneGame(probA,probB):    scoreA=0    scoreB=0    serving="A"    while not gameOver(scoreA,scoreB):        if serving=="A":            if random() < probA:                scoreA=scoreA+1            else:                serving="B"        else:            if random() < probB:                scoreB=scoreB+1            else:                serving="A"    return scoreA,scoreBdef gameOver(a,b):    return a==15 or b==15def PrintSummary(winsA,winsB):    n=winsA+winsB    print('\nGames simulated:%d'%n)    print('Wins for A:{0}({1:0.1%})'.format(winsA,winsA/n))    print('Wins for B:{0}({1:0.1%})'.format(winsB,winsB/n))main()

3.自底向上的测试:单元测试

阅读全文
0 0
原创粉丝点击