程序设计方法学
文章目录
实例:体育竞技分析
解决复杂问题的有效方法:自顶向下:
自顶向下:将一个问题表达为若干各小问题组成的形式;继续分解,直至每个小问题可被计算机简单解决
——分而治之
逐步组件复杂系统的有效测试方法:自底向上:
分单元测试,逐步组装;直至系统各部分通过测试和验证
——模块化集成
# MatchAnalysis.py
"""
需求:如何科学分析体育竞技比赛
输入:球员的水平
输出:可预测的比赛成绩
思维:抽象比赛结果+自动化执行N场比赛
N越大,比赛结果分析越科学
比赛规则:双人击球,A&B,回合制 5局3胜 胜者发球 15分胜一局
程序总体框架及步骤:
1. 答应程序的介绍性信息 --printInfo()
2. 获得程序运行参数:proA,proB,n --getInputs()
3. 利用球员A和B的能力值。模拟n局比赛 --simNGames()
4. 输出A和B获胜的场次及概率 --printSunmmary()
"""
# 第一阶段 --信息获取并输出
# 第二阶段 --模拟多场比赛
# 第三阶段 --根据比赛判断单局胜负
from random import random
def printIntro():
print("这个程序模拟两个选手A和B的某种竞技比赛")
print("程序运行需要A和B的能力值(以0到1之间的小数表示)")
def getInputs():
a = eval(input("请输入选手A的能力值(0-1): "))
b = eval(input("请输入选手B的能力值(0-1): "))
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</