Python_note8 程序设计方法学+Python第三方库安装+os库
实例13 体育竞技分析
自顶向下,解决复杂问题的有效方法,将一个小问题表达为若干小问题组成的形式,使用同样方法进一步解决小问题直至可以用计算机简单解决;自底向上
- 理解自顶向下的设计思维:分而治之;理解自底向上的执行思维:模块化集成
#sportgames.py from random import random def printIntro(): print("程序模拟两个选手A和B的某种竞技比赛") print("程序运行需要A和B的能力值") 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#谁先到15分则返回true结束while def simOneGame(probA,probB):#一场比赛 scoreA,scoreB=0,0 serving="A"#A发球 while not gameOver(scoreA,scoreB): if serving=="A": if random() < probA:#生成随机数若小于A的能力值,则A加一,是概率体现 scoreA += 1 else: serving="B"#A输球谁都不得分球权给B else: if random() < probB: scoreB += 1 else: serving="A" return scoreA,scoreB def simNGames(n,probA,probB):#n场比赛 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程序设计思维
计算思维与程序设计逻辑思维(数学)—实证思维(物理)—计算思维(计算机)
计算思维基于计算机强大的算力和海量数据,抽象计算过程,关注设计和构造,而非因果,以计算机程序为实现的主要手段。
开源思想深入演化和发展,形成了计算生态。没有顶层设计,以功能为单位,竞争发展、相互依存,迅速更迭。同一个功能,两个以上第三方库,自然选择。库广泛联系,逐级封装。AlphaGo深度学习算法采用Python语言开源
- 刀耕火种 -》 站在巨人肩膀
编程的起点不是算法而是系统,编程如同搭积木,利用计算生态为主要模式
优质计算生态推荐:http://python123.io
提高用户体验:进度展示(时间,步骤,循环);异常处理(用户输入,读写文件,输入输出);打印输出;日志文件;帮助信息
基本程序设计模式IPO;自顶向下;模块化设计,松耦合,紧耦合;配置化设计(程序引擎+配置数据文件);
- 应用开发(产品定义,系统架构,设计实现,用户体验)
产品定义不仅是功能定义要考虑商业模式;系统架构,关注数据流,模块化,体系结构;设计实现,结合可扩展性,灵活性等进行设计优化;用户体验优先
Python第三方库安装
13万+第三方库 https://pypi.org/ 检索第三方库
实例开发区块链相关程序:pypi.org搜索blockchain;挑选合适的第三方库,完成所需功能
- 安装
使用pip (命令行下执行)pip -h
;pip install <第三方库名>
;pip install -U <库>
更新
pip uninstall <库>
卸载;pip download <库>
下载但不安;pip show <库>
看库信息
pip search <关键词>
根据关键词搜索第三方库;pip list
已安装的 - 集成安装
Anaconda集成开发工具 https://www.continuum.io 数据计算领域 支持800+库 - 文件安装方法
http://www.lfd.uci.edu/~gohlke/pythonlibs/ UCI页面 一批下载了还需要编译的库的编译后版本
模块7 os库使用
os库提供通用的、基本的操作系统交互功能
- 路径操作:os.path子库,处理文件路径及信息
os.path.abspath(path)
返回path在当前系统的绝对路径
os.path.normpath(path)
统一用\分隔路径
os.path.realpath(path)
相对路径
os.path.dirname(path)
返回path中目录名称
os.path.basename(path)
获取path中最后文件名
os.path.join(path,*paths)
组合path和paths返回一个路径字符串
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
import os os.system("C:\\Windows\\System64\\calc.exe")
- 环境参数:获取系统软硬件信息等环境参数
os.chdir(path)
修改当前程序操作的路径
os.getcwd()
返回程序当前路径
os.getlogin()
获取系统登录名
os.cpu_count()
返回cpu数量
os.urandom(n)
获取n字节长度的随机字符串,用于加解密运算
实例14 第三方库自动安装脚本
NumPy N维数据表示和运算
Matplotlib 二维数据可视化
PIL 图像处理
Scikit-Learn 机器学习和数据挖掘
Requests HTTP协议访问和网络爬虫
Jieba 中文分词
Beautiful Soup HTML和XML解析器
Wheel Python第三方库文件打包工具
Django Python最流行的Web开发框架
Flask 轻量级Web开发框架
WeRoBot 微信机器人开发框架
SymPy 数学符号计算工具
Pandas 高效数据分析和计算
Networkx 复杂网络和图结构的建模和分析
编写各类自动化运行程序脚本
os.system()
三阶段:函数式编程-面向对象编程-pythonic编程
基础语法-进阶语法-高级语法
python网络爬虫与信息提取-py数据分析与展示-py机器学习应用-py科学计算三维可视化-py+大数据+人工智能-py+嵌入式+可编程硬件
网易云课程 进阶语法
- Python编程:pip安装第三方模块
- python3.x安装第三方库的解决办法
- python 安装第三方mod
- 安装第三方库出现 Python version 2.7 required, which was not found in the registry
- 如何安装python的第三方扩展库
- Python第三方库安装方法
- python安装第三方库,报“error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat).”错误,解决办法
- Python批量爬取第三方库(安装)(二进制.whl文件)
- 64位32位windows7安装python34和python27,numpy,scipy,matplotlib,scikit-learn等第三方模块
- Python笔记6——模块的使用和路径,别名,作用域,安装第三方库
- Python 数据分析如何安装第三方库(亲测适用win10)
- 【python学习】Windows上Python3.6 通过pip安装第三方库时出现UnicodeDecodeError的解决方法
- python在windows下安装第三方库
- Python第三方库的安装使用
- Python安装cx_Oracle第三方库(Mac osx Yosemite Intel i5环境)
- python27 windows 下三种安装第三方库的办法
- 使用pip来安装和管理第三方Python包(library)
- python安装第三方包
- 在osx下如何运用pip安装python第三方库
- python:13:第三方库的安装