其他分享
首页 > 其他分享> > mooc第八周

mooc第八周

作者:互联网

自底向上执行,自顶向下设计

以随机数来对运动员比赛胜负进行估计

import random

def printIntro():
    print("模拟两个运动员之间的比赛")
    
def getInputs():
    a = eval(input("请输入A选手的能力值(从0-1)"))
    b = eval(input("请输入b选手的能力值(从0-1)"))
    n = eval(input("模拟比赛的场次"))
    return a,b,n
    
def printSummary(winsA,winsB):
    n = winsB+winsA
    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.random()<probA:
                scoreA += 1
            else:
                serving = "B"
        else:
            if random.random() < probB:
                scoreB +=1
            else:
                serving = "A"
    return scoreA,scoreB
    
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 main():
    printIntro() 												#介绍背景
    probA,probB,n=getInputs()									#获取输入的值
    winsA,winsB=simNGames(n,probA,probB)						#根据A,B的能力值预测获胜多少场
    printSummary(winsA,winsB)									#输出结果

main()

老师讲的这段代码让我感受到程序的结构化设计。自顶向下,还有高耦合的性能。
这段代码虽然繁琐,但修改起来极其方便,维护性强。

利用random.random()来判断胜负,是否科学,还要多查资料,毕竟有个随机数种子,随机并不是真的随机。

程序设计思维

  1. 计算思维:抽象问题的计算过程,利用计算机自动化求解
    面对汉诺塔问题时,如果不将问题抽象化,很难利用递归去解决。
  2. 计算生态:竞争发展、相互依存、迅速更迭
    没有顶层设计、以功能为单位,还有上面的三个特点,是和API区分的明显特点。
    【在这里感受到了开源的不可思议的巨大力量,想使用QGIS、GeoServer去实现自己的目的】
  3. 用户体验:进度展示、异常处理等
  4. IPO、自顶向下、模块化、配置化、应用开发
    配置化设计是指采取【引擎】+【配置】的方式,将可选参数配置化。如自动轨迹的绘制

Python第三方库安装

PyPI:
pip安装方法:
pip install <第三方库名> 安装命令
pip install -U <第三方库名> 更新第三方库
pip uninstall <第三方库名> 卸载第三方库
pip download <第三方库名> 下载并不安装指定的第三方库
pip show <第三方库名> 列出指定的第三方库的详细信息
pip search <第三方库名> 根据关键词在名称和介绍中来检索相关的第三方库
pip list 列出已安装的第三方库

集成安装方法:
Anaconda
数据计算领域【可以试一试】

UCI页面,有windows上

标签:winsB,mooc,winsA,random,第八,pip,第三方,def
来源: https://blog.csdn.net/GISer_Shi/article/details/98626332