IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 北京理工大学-嵩天python语言程序设计-8-程序设计方法学 -> 正文阅读

[开发测试]北京理工大学-嵩天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()

问题分解
在这里插入图片描述
第一阶段信息打印程序编写printInfo()
在这里插入图片描述
第一阶段编写获取信息的函数Getinputs()
在这里插入图片描述
第一阶段编写球员能力值获取函数
在这里插入图片描述
第二阶段 模拟N局比赛
在这里插入图片描述
当比赛成绩大于15分的时候,比赛结束
在这里插入图片描述
在这里插入图片描述

完整的程序设计构思
在这里插入图片描述
关于竞技比赛分析的代码

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()<probA:
                scoreA += 1
            else:
                serving="B"
        else:
            if 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)
    printSummary(winsA,winsB)
main()

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

8.2.2计算生态与Python 语言
-竞争发展;相互依存;迅速更迭
-跟随创新、集成创新、原始创新
在这里插入图片描述

8.2.3用户体验与软件产品

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

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

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

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

在这里插入图片描述

-自顶向下
-模块化设计
在这里插入图片描述
在这里插入图片描述

-配置化设计:引擎+配置:程序执行和配置分离,将可选参数配置优化
在这里插入图片描述
-应用开发:产品定义,系统架构,设计与实现,用户体验
在这里插入图片描述
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下载后,需要编译再安装
文件安装方法
在这里插入图片描述

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

本节小结
在这里插入图片描述

8.4os库的基本使用
os库提供通用的、基本的操作系统交互功能
-路径操作:os.path子库,处理文件路径及信息
-进程管理:启动系统中的其他程序
-环境参数:获得系统软硬件信息等环境参数
在这里插入图片描述

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

import os.path
import os.path as op

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
8.4.2os库之进程管理
os.system(command)
-执行程序或命令command
-在windows系统中,返回值为cmd的调用返回信息

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

8.44.3 os库之环境参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
8.5第三方库自动安装脚本
-需求:批量安装第三方库需要人工干预,能否自动安装?
-自动执行pip逐一根据安装需求安装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#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")

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-05-06 11:16:21  更:2022-05-06 11:16:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:18:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码