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程序设计思维
计算思维与程序设计

逻辑思维(数学)—实证思维(物理)—计算思维(计算机)
计算思维基于计算机强大的算力和海量数据,抽象计算过程,关注设计和构造,而非因果,以计算机程序为实现的主要手段。

计算生态与python

开源思想深入演化发展,形成了计算生态。没有顶层设计,以功能为单位,竞争发展、相互依存,迅速更迭。同一个功能两个以上第三方库,自然选择。库广泛联系,逐级封装。AlphaGo深度学习算法采用Python语言开源

  • 刀耕火种 -》 站在巨人肩膀
    编程的起点不是算法而是系统,编程如同搭积木,利用计算生态为主要模式
    优质计算生态推荐:http://python123.io
用户体验和软件产品

提高用户体验:进度展示(时间,步骤,循环);异常处理(用户输入,读写文件,输入输出);打印输出;日志文件;帮助信息

基本程序设计模式

IPO;自顶向下;模块化设计,松耦合,紧耦合;配置化设计(程序引擎+配置数据文件);

  • 应用开发(产品定义,系统架构,设计实现,用户体验)
    产品定义不仅是功能定义要考虑商业模式;系统架构,关注数据流模块化体系结构;设计实现,结合可扩展性,灵活性等进行设计优化;用户体验优先
Python第三方库安装

13万+第三方库 https://pypi.org/ 检索第三方库
实例开发区块链相关程序:pypi.org搜索blockchain;挑选合适的第三方库,完成所需功能

  • 安装
    使用pip (命令行下执行) pip -hpip 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+嵌入式+可编程硬件
网易云课程 进阶语法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值