【第八周】程序设计方法学(pip安装第三方库、os库的使用)——北理工Python慕课笔记

写在前面:这一章比较偏重设计思维和外围环境的配置,没有pythony语法的硬知识,比较轻松,赶考试的同学可以跳有再在来看!

【第八周】程序设计方法学

实例13:体育竞技分析

计算思维:抽象+自动化
模拟比赛过程进行N次模拟结果
问题分析:在这里插入图片描述

  • 自顶向下和自底向上
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    每一个小模块的具体代码看下面的代码
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))

#只要有一个人分数达到15就返回1
def gameOver(a,b):
    return  a==15 or b==15

#模拟一场比赛程序
def simOneGame(proA,proB):
    scoreA,scoreB=0,0
    serving="A"#先是A发球局
    while not gameOver(scoreA,scoreB):#gameOver判断有没有一方达到15分,没达到就在里面一直比
        if serving=="A":
            if random()<proA:#产生随机数,小于A的能力值就算A得一分
                scoreA+=1
            else:
                serving="B"#如果A没得分就换B发球
        else:
            if random()<proB:
                scoreB+=1
            else:
                serving = "A"
    return  scoreA,scoreB


#模拟n场比赛程序,套模拟一场比赛程序的代码
def simNGames(n,probA,probB):
    winsA,winsB=0,0
    for i in range(n):
        scoreA,scoreB=simOneGame(probA,probB)
        if scoreA>scoreB:
            winsA+=1#A赢的局数+1
        else:
            winsB+=1
    return winsA,winsB

def main():
    printIntro()
    probA,probB,n=getInputs()
    winsA,winsB=simNGames(n,probA,probB)
    printSummary(winsA,winsB)
main()

在这里插入图片描述
太高级了,落到具体我还是喜欢用一个函数写一个函数QAQ,大方向安排好了就行

python程序设计思维

  • 计算思维与程序设计

在这里插入图片描述
计算思维特点:抽象和自动化
栗子:
在这里插入图片描述
量化分析股市
在这里插入图片描述
在这里插入图片描述

  • 计算生态与python语言
    开源运动:从大教堂到集市
  • 计算生态:没有顶层设计,以功能为单位,具备三个特点:
    竞争发展,相互依存,迅速更迭
  • python:13w个库,互相竞争,逐级封装,相互关联和依存
    AlphaGo深度学习算法采用Python语言开源
    API!=生态
    API是经过设计的
    在这里插入图片描述
  • 用户体验和软件产品
    要感受用户体验用一下b站再用一下学习通就知道了- -
    进度提示,输入判断,异常提示
  • 基本的程序设计模式
    在这里插入图片描述
    还是那句高内聚低耦合
    配置化设计:将程序和数据文件分离
    在这里插入图片描述
    应用开发的步骤:1.产品定义2.系统架构3.设计与实现4.用户体验

python第三方库安装

查询第三方库: python社区.
https://www.pypi.org
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 法一:pip命令行安装方法
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    查询例如:
    在这里插入图片描述
    查询的信息是要在库的介绍信息或者库的名称信息中出现的才会被检索出来
    在这里插入图片描述
    注意这种条件适合大部分方法,但是要联网,最好加几个镜像

  • 法二:集成安装方法
    适合于数据分析在这里插入图片描述

  • 法三:文件安装方法
    在这里插入图片描述
    可以通过如下网站找到需要编译的库的直接安装版本
    在这里插入图片描述
    例子:
    在这里插入图片描述

模块7:os库

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

路径操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
access modify create
可以使用time库的.ctime函数将其变成年月日形式
在这里插入图片描述
在这里插入图片描述

进程管理

用于调用外部程序
在这里插入图片描述
直接打开或给出参数打开
例子:在画图中打开文件
在这里插入图片描述

环境参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
有些不能够被打印出来用16进制显示

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

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

#用脚本,通过os的system执行命令批量安装库
import os
libs={"numpy","matplotlib","pillow","sklearn","requests",\
      "jieba","beautifulsoup4","wheel","networkx","sympy"\
    "pyinstaller","django","flask","werobot","qyqt5",\
    "pandas","pyopengl","pypdf2","docopt","pygame"}
try:
    for lib in libs:
        os.system("pip install "+lib)
        print("install {} successful".format(lib))
except:
    print("Failed install {}".format(lib))

我只是敲了一遍熟悉熟悉,并没有运行哈,如果有安装失败还是试着一个一个来或者多加几个镜像源吧

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值