从零开始学Python(八)程序设计方法学

从零开始学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")
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值