python生态系统特征 python的计算生态包括_python生态系统特征

 




一、计算思维

利用计算机求解问题的思维——计算思维

三种基本的思维特征

思维种类

特征

代表

实证思维

实验和验证

物理学科

逻辑思维

推理和演绎

数学学科

计算思维 

设计和构造

计算机学科

二、程序设计方法论

A:自顶向下

python生态系统特征 python的计算生态包括_学习笔记_02

 

#该python程序命名为:main(MatchAnalysis两个球员A和B分别赢得比赛的概率)
#MatchAnalysis.py

from random import random
#调用random函数

def printIntro():
#必要的说明
    print("这个程序模拟两个选手的某种竞技比赛")
    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)
        #设计了一个新的函数simOneGame()来模拟一场比赛
        #这个函数需要知道每个球员赢得比赛的概率,返回两个球员的最终得分。
        if scoreA > scoreB:
            winsA +=1
        else:
            winsB +=1
    return winsA,winsB
def gameOver(a,b):
#当任一个球员达到15分时比赛结束
    return a==15 or b==15
def simOneGame(probA,probB):
# 尽可能地去细节模拟比赛的过程
    scoreA,scoreB=0,0
    serving='A'
    #球员A发球
    while not gameOver(scoreA,scoreB):
    #设计了gameOver():函数,来表示比赛结束的条件
    #’while‘封装原因:简化根据不同规则修改函数的代价,提高代码可维护性
        if serving=="A":
            if random()<probA/(probA+probB):
                scoreA+=1
            else:
                serving="B"
        else:
            if random()<probB/(probA+probB):
                scoreB+=1
            else:
                serving="A"
    return scoreA,scoreB


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 main():
    printIntro()
    probA,probB,n=getInputs()
    winsA,winsB=simNGames(n,probA,probB)
    printSummary(winsA,winsB)
main()

结果演示:

python生态系统特征 python的计算生态包括_python生态系统特征_03


 



设计方法的比较

 

程序规模

运行思维

自顶向下

小规模

把大问题分解成多个小问题

再将碎片组合起来

自底向上

中、大规模

先运行和测试每一个小函数

再测试由基础函数组成的整体函数

 



 

 

B.自底向上

原理:借助python解释器提供import保留字辅助开展单元测试

语法格式:import<源文件名称>

例如:对gameOver()函数进行单元测试

 

python生态系统特征 python的计算生态包括_python生态系统特征_04

 

 需要注意的是,要加一个print()函数,来获取布尔值

且需要将原py文件进行打包处理

python生态系统特征 python的计算生态包括_python_05

 

 如此进行测试,可以获得如下结果:

python生态系统特征 python的计算生态包括_Python_06

python生态系统特征 python的计算生态包括_python生态系统特征_07

 

 

通过输入比赛分数可以测试gameOver()函数的执行结果,例如:

 

 

python生态系统特征 python的计算生态包括_python_08

 

同理,需要加入print()函数来获取布尔值,结果如图

python生态系统特征 python的计算生态包括_学习笔记_09

 

方法二:

python生态系统特征 python的计算生态包括_Python_10

 

 

python生态系统特征 python的计算生态包括_零基础_11

 

 

三、计算生态

Python官方第三方库索引功能网址:

https://pypi.python.org/pypi 

python标准库:

Python3.5.2版本Windows默认安装路径为:C:\Users\<用户名>\AppData\Local\Programs\Python\python35-32

Python通过新一代安装工具pip管理大部分python第三方库的安装

 

四、基本的Python内置函数

Python 内置函数 | 菜鸟教程 (runoob.com)