北京理工大学-嵩天python语言程序设计-8-程序设计方法学

本节的主要内容包括:
8.1体育竞技分析
8.2Python程序设计思维
8.3Python第三方库安装
8.4 os库的基本使用
8.5第三方库自动安装脚本

本节的主要目标
-方法论
理解并掌握一批Python程序设计思维
-实践能力
学会编写更有设计感的程序

8.1体育竞技分析
-需求:如何分析体育竞技比赛?
-输入:球员水平
-输出:可预测的比赛成绩

模拟N场比赛
-计算思维:抽象+自动化
-模拟:抽象比赛过程+自动化执行N场比赛
-当N越大时,比赛结果分析会更科学

比赛规则
-双人击球比赛:A和B,回合制,5局3胜
-开始时一方先发球,直至判分,接下来胜者发球
-球员只能在发球局得分,15分胜一局

自顶向下(分而治之)
-将一个总问题表达为若干个小问题组成的形式
-使用同样的方法进一步分解小问题
-直至小问题可以用计算机简单明了的解决

自底向上(执行)(模块化集成)
-逐步组建复杂的有效测试方法。
-分单元测试,逐步组装。
-按照自顶向下相反的路径操作。
-直至,系统各部分以组装的思路都经过测验和验证。

8.1体育竞技分析的程序总体框架及步骤
-步骤1:打印程序的介绍性信息式 printInfo()
-步骤2:获得程序运行参数:proA,proB和n GetInput()
-步骤3:利用球员A和B的能力值,模拟n局比赛 simNGames()
-步骤4:输出球员A和B获胜比赛的场次及概率 printSummary()

问题分解
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第1张图片
第一阶段信息打印程序编写printInfo()
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第2张图片
第一阶段编写获取信息的函数Getinputs()
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第3张图片
第一阶段编写球员能力值获取函数
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第4张图片
第二阶段 模拟N局比赛
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第5张图片
当比赛成绩大于15分的时候,比赛结束
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第6张图片
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第7张图片

完整的程序设计构思
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第8张图片
关于竞技比赛分析的代码

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 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 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()scoreB:
            winsA += 1
        else:
            winsB += 1
    return winsA,winsB

def main():
    printIntro()
    probA,probB,n=getInputs()
    winsA,winsB=simNGames(n,probA,probB)
    printSummary(winsA,winsB)
main()

8.2节python程序设计思维
8.2.1计算思维与程序设计
-逻辑思维:推理和演绎,数学代表为A->B;B->C则得到A->C
-实证四位:实验和验证,物理学代表,引力波和实验
-计算思维:设计和构造,计算机为代表,汉诺塔递归
Computational Thinking 抽象问题的计算过程,利用计算机自动化求解

8.2.2计算生态与Python 语言
-竞争发展;相互依存;迅速更迭
-跟随创新、集成创新、原始创新
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第9张图片

8.2.3用户体验与软件产品

方法1:进度展示
-如果程序设计需要计算时间,可能产生等待,请增加进度条展示
-如果程序有若干步骤,需要提示用户,请增加进度展示
-如果程序可能存在大量 次数的循环,请增加进度展示

方法2:异常处理
-当获得用户输入,对合规性需要检查,需要异常处理
-当读写文件时,对结果进行判断,需要异常处理
-当进行输入输出时,对运算结果进行判断,需要异常处理

其他类方法
-打印输出:特定位置,输出程序运行的过程信息
-日志文件:对程序异常及用户实验进行定期记录
-帮助信息;给用户多种方式提供帮助信息

8.2.4基本程序设计模式
程序的基本模式
IPO
-Input
-Process
-Output

北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第10张图片

-自顶向下
-模块化设计
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第11张图片
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第12张图片

-配置化设计:引擎+配置:程序执行和配置分离,将可选参数配置优化
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第13张图片
-应用开发:产品定义,系统架构,设计与实现,用户体验
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第14张图片
8.3Python第三方库的安装

-PyPI: Python Package Index
-由PSF维护的展示全球Python计算生态的主站
-学会检索并利用PyPI,找到合适的第三方库开发程序
-https://pypi.org/

8.3.1安装Python第三方库的三种方法
1第三方库的pip安装方法,适合99%的第三方库的安装

pip –h
pip install <第三方库名>  # 安装指定的第三方库
pip install –U <第三方库名>  # 使用-U标签更新已安装的指定第三方库
pip uninstall <第三方库名>  # 卸载指定的第三方库
pip download <第三方库名>  # 下载但不安装指定的第三方库
pip show <第三方库名>  # 列出某个指定第三方库的详细信息
pip search <关键词>  # 根据关键词在名称和介绍中搜索第三方库
pip list  # 列出当前系统已经安装的第三方库

2.集成安装
结合特定python开发工具批量安装,如Anaconda

3.某些第三方库pip下载后,需要编译再安装
文件安装方法
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第15张图片

使用UCI网页
https://www.lfd.uci.edu/~gohlke/pythonlibs/

本节小结
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第16张图片

8.4os库的基本使用
os库提供通用的、基本的操作系统交互功能
-路径操作:os.path子库,处理文件路径及信息
-进程管理:启动系统中的其他程序
-环境参数:获得系统软硬件信息等环境参数
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第17张图片

8.4.1os库之路径操作
os.path子库以path为入口,用于惭怍和处理文件路径

import os.path
import os.path as op

北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第18张图片
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第19张图片
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第20张图片
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第21张图片
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第22张图片
8.4.2os库之进程管理
os.system(command)
-执行程序或命令command
-在windows系统中,返回值为cmd的调用返回信息

import os
os.system("C:\\Windows\\System32\\calc.exe")
>>>
0  # 调用成功,返回0

8.44.3 os库之环境参数

北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第23张图片
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第24张图片
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第25张图片
8.5第三方库自动安装脚本
-需求:批量安装第三方库需要人工干预,能否自动安装?
-自动执行pip逐一根据安装需求安装
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第26张图片
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第27张图片
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第28张图片
北京理工大学-嵩天python语言程序设计-8-程序设计方法学_第29张图片

#BatchInstall.py
import os
libs = {"numpy","matplotlib","pillow","sklearn","requests",\
"jieba","beautifulsoup4","wheel","networkx","sympy",\
"pyinstaller","django","flask","werobot","pyqt5",\
"pandas","pyopengl","pypdf2","docopt","pygame"}
try:
    for lib in libs:
    os.system("pip install " + lib)
    print("Successful")        
except:
	print("Failed Somehow")

你可能感兴趣的:(Python,学习之旅,学习充电,python,单元测试,开发语言)