Python语言程序设计 第八周 程序设计方法学

8.1实例13:体育竞技分析
体育竞技分析:模拟N场比赛

计算思维:抽象+自动化
模拟:抽象比赛过程+自动化执行N场比赛
当N越大时,比赛结果分析会越科学
在这里插入图片描述
自顶向下
解决复杂问题的有效方法
将一个总问题表达为若干个小问题组成的形式
使用同样方法进一步分解小问题
直至,小问题可以用计算机简单明了的解决
在这里插入图片描述
逐步组建复杂系统的有效测试方法
分单元测试,逐步组装
按照自顶向下相反的路径操作
直至,系统各部分以组装的思路都经过测试和验证
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

举一反三
理解自顶向下和自底向上
理解自顶向下的设计思维:分而治之
理解自底向上的执行思维:模块化集成
自顶向下是"系统"思维的简化

应用问题的扩展
扩展比赛参数,增加对更多能力对比情况的判断
扩展比赛设计,增加对真实比赛结果的预测
扩展分析逻辑,反向推理,用胜率推算能力?

8.2 Python程序设计思维
计算思维与程序设计
计算生态与python语言
用户体验与软件产品
基本的程序设计模式

计算思维
第三种人类思维特征
逻辑思维:推理和演绎,数学为代表,A->B B->C A->C
实证思维:实验和验证,物理为代表,引力波<-实验
计算思维:设计和构造,计算机为代表,汉诺塔递归

抽象和自动化
计算思维:Computational Thinking
抽象问题的计算过程,利用计算机自动化求解
计算思维是基于计算机的思维方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

计算思维
抽象问题的计算过程,利用计算机自动化求解

计算思维基于计算机强大的算力及海量数据
抽象计算过程,关注设计和构造,而非因果
以计算机程序设计为实现的主要手段

在这里插入图片描述
8.3 Python第三方库安装
看见更大的Python世界
https://pypi.org/

Python社区
PyPI
PyPI:Python Package Index
PSF维护的展示全球Python计算生态的主战
学会检索并利用PyPI,找到合适的第三方库开发程序

实例:开发与区块链相关的程序
第一步:在pypi.org搜索blockchain
第二步:挑选适合开发目标的第三方库作为基础
第三步:完成自己需要的功能

在这里插入图片描述
安装python第三方库
三种方法
1、使用pip命令(主要方法)
2、集成安装方法
3、文件安装方法

第三方库的pip安装方法
在这里插入图片描述
常用的pip命令
pip install <第三方库名> 安装指定的第三方库
pip install -U <第三方库名> 使用-U标签更新已安装的第三方库
pip uninstall <第三方库名> 卸载指定的第三方库
pip download <第三方库名> 下载但不安装指定的第三方库
pip show <第三方库名> 列出某个指定第三方库的详细信息
pip search <第三方库名> 根据关键词在名称和介绍中搜素第三方库
pip list 列出当前系统已经安装的库

第三方库的集成安装方法
Anaconda https://www.continuum.io
支持近800个第三方库
包含多个主流工具
适合数据计算领域开发

第三方库的文件安装方法

文件安装方法
为什么有些第三方库用pip可以下载,但无法安装?
某些第三方库pip下载后,需要编译再安装
如果操作系统没有编译环境,则能下载但不能安装
可以直接下载编译后的版本用于安装嘛?

在这里插入图片描述

文件安装方法
实例:安装wordcloud库
步骤一:在UCI页面上搜索wordcloud
步骤二:下载对应版本的文件
步骤三:使用pip install <文件名>安装

8.4 模块7:os库的使用
在这里插入图片描述
OS库基本介绍
os库提供通用的、基本的操作系统交互功能

路径操作**:
os.path子库,处理文件路径及信息**
os.path子库以path为入口,用于操作和处理文件路径
import os.path
import os.path as op

os.path.abspath(path) 返回path在当前系统中的绝对路径

>>> os.path.abspath("file.txt")
'C:\\Users\\Tian Song\\Python36-22\\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) 判断path对应文件或目录是否存在,返回True或者False

>>>os.path.exists("D://PYE//file.txt")
False

os.path.isfile(path) 判断path所对应是否为已存在的文件,返回True或则False

>>>os.path.isfile("D://PYE//file.txt")
True

os.path.isdir(path) 判断path所对应是否为已存在的目录,返回True或则False

>>>os.path.isdir("D://PYE//file.txt")
False

os.path.getatime(path) 返回path对应文件或目录上一次的访问时间

>>>os.path.getatime("D:/PYE/file.txt")

os.path.getmtime(path) 返回path对应文件或目录最近一次的修改时间

>>>os.path.getmtime("D:/PYE/file.txt")

os.path.getctime(path) 返回path对应文件或目录的创建时间

>>>time.ctime(os.path.getctime("D:/PYE/file.txt"))

路径操作
函数以及描述
os.path.getsize(path) 返回path对应文件的大小,以字节为单位

>>>os.path.getsize("D:/PYE/file.txt")
110768

进程管理:启动系统中其他程序

进程管理
os.system(command)
执行程序或命令command
在windows系统中,返回值为cmd的调用返回信息

进程管理

>>> import os
>>> os.system("C:\\Windows\\System32\\calc.exe")
0
>>> import os
>>> os.system("C:\\Windows\\System32\\mspaint.exe \
				D:\\PYECourse\\grwordcloud.png)
>>>
0

在这里插入图片描述

环境参数:获得系统软硬件信息等环境参数
获取或者改变系统环境信息
函数及描述
os.chdir(path) 修改当前程序操作的路径

>>>os.chdir("D:")

os.getcwd() 返回程序的当前路径

>>>os.getcwd()
'D:\\'

os.getlogin() 获取当前系统登录用户名称

>>>os.getlogin()
'Tian Song'

os.cpu_count() 获取当前系统的CPU数量

>>>os.cpu_count()
8

环境参数
获取或者改变系统的环境信息
os.urandom(n) 获得n个字节长度的随机字符串,通常用于加解密运算

>>>os.urandom(10)
b'\xd2l\x1e\xfa3\x83\xfcRn\x0f'

8.5 实例14:第三方库安装脚本

问题分析
第三方库自动安装脚本
需求:批量安装第三方库需要人工干预,能否自动安装?
自动执行pip逐一根据安装需求安装
如何自动执行一个程序?例如:pip?

库名用途以及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 中文分词
Beautiful Soup HTML和XML解析器
Wheel Python第三方库文件打包工具
PyInstaller 打包Python源文件为可执行文件
Django Python最流行的Web开发框架
Flask 轻量级web开发框架
WeRobot 微信机器人开发框架
SymPy 数学符号计算工具
Pandas 高效数据分析和计算
Networkx 复杂网络和图结构的建模和解析
PyQt5 基于Qt的专业级GUI开发框架
PyOpenGL 多平台OpenGL开发接口
PyPDF2 PDF文件内容提取及处理
docopt Python命令行解析
PyGame 简单小游戏开发框架

第三方库自动安装脚本

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

举一反三
自动化脚本+
编写各类自动化运行程序的脚本,调用已有程序
扩展应用:安装更多第三方库,增加配置文件
扩展异常检测:捕获更多异常类型,程序更稳定友好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值