从零开始学Python(八)程序设计方法学
一、实例:体育竞技分析
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()
自顶向下(设计):解决问题的有效方法。将一个总问题表达为若干小问题组成的形式,使用同样方法分解小问题,直至小问题可以用计算机简单明了地解决。
自底向上(执行):逐步组建复杂系统的有效测试方法。分单元测试,逐步组装,按照自顶向下相反的路径操作,直至系统各部分以组装的思路都经过测试和验证。
二、Python程序设计思维
1、计算思维与程序设计
①逻辑思维:推理和演绎,数学为代表
②实证思维:实验和验证,物理为代表
③计算思维:设计和构造,计算机为代表
④抽象和自动化:抽象问题的计算过程,利用计算机自动化求解。
计算思维基于计算机强大的算力及海量数据,抽象计算过程,关注设计和构造,而非因果。以计算机程序设计为实现的主要手段,编程是将计算思维变成现实的手段。
2、计算生态与Python语言
(1)计算生态:开源思想深入演化和发展,形成了计算生态。
没有顶层设计、以功能为单位、具备三个特点——竞争发展、相互依存、迅速更迭。
(2)计算生态与Python语言
①以开源项目为代表的大量第三方库
②库的建设经过野蛮生长和自然选择
③库之间关联使用,依存发展
④社区庞大,新技术更迭迅速
(3)计算生态的运用:站在巨人的肩膀上
①编程的起点不是算法而是系统
②编程如同搭积木,利用计算生态为主要模式
③编程的目标是快速解决问题
3、用户体验与软件产品
关心功能实现,更要关心用户体验,程序最终为人类服务。
提高用户体验的方法:①进度展示 ②异常处理 ③打印输出 ④日志文件 ⑤帮助信息
4、基本的程序设计模式
(1)从IPO开始
(2)模块化设计
(3)配置化设计:引擎+配置,关键在于接口设计。
应用开发的四个步骤:产品定义、系统架构、设计与实现、用户体验。
三、Python第三方库安装
1、看见更大的Python世界
Python社区: http://pypi.org/
学会检索并利用PyPI,找到合适的第三方库开发程序
安装Python第三方库:①pip命令(主要) ②集成安装方法 ③文件安装方法
2、pip安装方法
使用pip安装工具(命令行下执行) pip –h 打印出帮助信息
安装,pip install <第三方库>
更新,pip install -U <第三方库>
卸载,pip uninstall <第三方库>
下载但不安装,pip download <第三方库>
列出详细信息,pip show <第三方库>
搜索第三方库,pip search <关键词>
3、集成安装方法
Anaconda支持近800个第三方库,包含多个主流工具,适合数据计算领域开发。
4、文件安装方法
某些第三方库pip下载后,需要编译后再安装,若无编译环境,则能下载却无法安装。
http://www.ifd.uci.edu/~gohlke/pythonlibs/
四、os库的使用
1、os库基本介绍:提供通用的、基本的操作系统交互功能。
①路径操作:os.path子库,处理文件路径及信息
②进程管理:启动系统中其他程序
③环境参数:获得系统硬件信息等环境参数
2、os库路径操作
(1)调用:import os.path import os.path as op
(2)函数
3、os库进程管理
os.system(command)
①执行程序或命令command
②在Windows系统中,返回值为cmd的调用返回信息。
4、环境参数:获取或改变系统环境信息
五、实例:第三方库自动安装脚本
#BatchInstall.py
import os
libs = {"numpy","matplotlib","pillow","sklearn","requests",\
"jieba","beautifulsoup4","wheel","networkx","sympy",\
"pyinstaller","django","flask","werobot","pyqt5",\
"pandas","pyopeng1","pypdf2","docopt","pygame"}
try:
for lib in libs:
os.system("pip install" + lib)
print("Successful")
except:
print("Failed Somehow")