python学习笔记——第八章
第8章 程序设计方法学
一、实例13: 体育竞技分析
总体步骤:
- 步骤1:打印程序的介绍性信息 - printInfo()
- 步骤2:获得程序运行参数:proA, proB, n - getInputs()
- 步骤3:利用球员A和B的能力值,模拟n局比赛 - simNGames()
- 步骤4:输出球员A和B获胜比赛的场次及概率 - printSummary()
代码:
#MatchAnalysis.py
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(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 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程序设计思维
1.计算思维与程序设计
- 逻辑思维:推理和演绎,数学为代表,A->B B->C A->C
- 实证思维:实验和验证,物理为代表,引力波<-实验
- 计算思维:设计和构造,计算机为代表,汉诺塔递归
2.计算生态与Python语言
API != 生态
3.用户体验与软件产品
提高用户体验的方法:
方法1:进度展示
- 如果程序需要计算时间,可能产生等待,请增加进度展示
- 如果程序有若干步骤,需要提示用户,请增加进度展示
- 如果程序可能存在大量次数的循环,请增加进度展示
方法2:异常处理
- 当获得用户输入,对合规性需要检查,需要异常处理
- 当读写文件时,对结果进行判断,需要异常处理
- 当进行输入输出时,对运算结果进行判断,需要异常处理
其他类方法
- 打印输出:特定位置,输出程序运行的过程信息
- 日志文件:对程序异常及用户使用进行定期记录
- 帮助信息:给用户多种方式提供帮助信息
4.基本的程序设计模式
IPO:
- I:Input 输入,程序的输入
- P:Process 处理,程序的主要逻辑
- O:Output 输出,程序的输出
确定IPO:明确计算部分及功能边界
编写程序:将计算求解的设计变成现实
调试程序:确保程序按照正确逻辑能够正确运行
基本的程序设计模式:自顶向下设计、模块化设计、配置化设计
三、Python第三方库安装
安装Python第三方库三种方法:
方法1(主要方法): 使用pip命令
安装指定的第三方库 D:\>pip install <第三方库名>
使用-U标签更新已安装的指定第三方库 D:\>pip install –U <第三方库名>
卸载指定的第三方库 D:\>pip uninstall <第三方库名>
方法2: 集成安装方法
集成安装:结合特定Python开发工具的批量安装
方法3: 文件安装方法
实例:安装wordcloud库
步骤1:在UCI页面上搜索wordcloud
步骤2:下载对应版本的文件
步骤3:使用pip install <文件名>安装
四、模块7: os库的基本使用
OS库:
- 路径操作:os.path子库,处理文件路径及信息
- 进程管理:启动系统中其他程序
- 环境参数:获得系统软硬件信息等环境参数
路径操作:
os.path.abspath(path) 返回path在当前系统中的绝对路径
>>>os.path.abspath("file.txt")\'C:\\Users\\Tian Song\\Python36-32\\file.txt\'
os.path.normpath(path) 归一化path的表示形式,统一用\\分隔路径,
>>>os.path.normpath("D://PYE//file.txt")\'D:\\PYE\\file.txt\'
os.path.relpath(path) 返回当前程序与文件之间的相对路径 (relative path)
>>>os.path.relpath("C://PYE//file.txt")\'..\\..\\..\\..\\..\\..\\..\\PYE\\file.txt\'
os.path.dirname(path) 返回path中的目录名称
>>>os.path.dirname("D://PYE//file.txt")\'D://PYE\'
os.path.basename(path) 返回path中最后的文件名称
>>>os.path.basename("D://PYE//file.txt")\'file.txt\'
os.path.join(path, *paths) 组合path与paths,返回一个路径字符串
>>>os.path.join("D:/", "PYE/file.txt")\'D:/PYE/file.txt\'
os.path.exists(path)
os.path.isfile(path)
os.path.isdir(path)
os.path.getatime(path)
os.path.getmtime(path)
os.path.getctime(path)
os.path.getsize(path)
进程管理:
os.system(command)
- 执行程序或命令command
- 在Windows系统中,返回值为cmd的调用返回信息
环境参数:
os.chdir(path) 修改当前程序操作的路径
>>>os.chdir("D:")
os.getcwd() 返回程序的当前路径
>>>os.getcwd()\'D:\\\'
os.getlogin() 获得当前系统登录用户名称
>>>os.getlogin()\'Tian Song\'
os.cpu_count() 获得当前系统的CPU数量
>>>os.cpu_count()
os.urandom(n) 获得n个字节长度的随机字符串,通常用于加解密运算
>>>os.urandom(10)b\'7\xbe\xf2!\xc1=\x01gL\xb3\'
五、实例14: 第三方库自动安装脚本
库名 用途 pip安装指令
NumPy N 维数据表示和运算 pip install numpy
Matplotlib 二维数据可视化 pip install matplotlib
PIL 图像处理 pip install pillow
Scikit-Learn 机器学习和数据挖掘 pip install sklearn
Requests HTTP协议访问及网络爬虫 pip install requests
Jieba 中文分词 pip install jieba
Beautiful Soup HTML和XML解析器 pip install beautifulsoup4
Wheel Python 第三方库文件打包工具 pip install wheel
PyInstaller 打包Python源文件为可执行文件 pip install pyinstaller
Django Python最流行的Web开发框架 pip install django
以上是 python学习笔记——第八章 的全部内容, 来源链接: utcz.com/z/388275.html