【Python入门】——设计思想和生态概览

夙愿已清 提交于 2020-02-08 18:44:51

一、Python设计思维和方法


实例:体育竞技分析

#双人击球比赛:A&B,回合制,5局3胜
#开始时一方先发球,直至判分,接下来胜者发球
#球员只能在发球局得分,15分胜一局
#实例:体育竞技分析.py
from random import *
def printInfo(): #打印程序的介绍信息
    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 gameOver(scoreA,scoreB):#判断比赛是否结束
    if scoreA == 15 or scoreB == 15:
        return True
    else:
        return False
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,proA,proB): #程序模拟n局比赛
    winsA,winsB = 0,0
    for i in range(n):
        scoreA,scoreB = simOneGame(proA,proB)
        if scoreA > scoreB:
            winsA += 1
        else:
            winsB += 1
    return winsA,winsB
def printSummary(winsA,winsB): #输出球员A和B获胜比赛的场次及概率
    n = winsA+winsB
    print("竞技分析开始,共模拟{}场比赛".format(n))
    print("选手A赢得了{}场比赛,占比{:0.1%}".format(winsA,winsA/n))
    print("选手B赢得了{}场比赛,占比{:0.1%}".format(winsB,winsB/n))
    print("竞技分析开始,共模拟{}场比赛".format(n))
def main():
    printInfo()
    proA,proB,n = getInputs()
    winsA,winsB = simNGames(n,proA,proB)
    printSummary(winsA,winsB)
main()

在这里插入图片描述
三种人类思特征

  1. 逻辑思维:推理和演绎,数学为代表,A->B B->C 可证 A->C

  2. 实证思维:实验和验证,物理为代表

  3. 计算思维:设计和构造,计算机为代表

计算思维

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

计算生态

以开源项目为组织形式,充分利用“共识原则”和“社会利他”组织人员,在竞争发展、相互依存和迅速迭代中完成技术的更新换代,形成技术的自我演化路径

14.OS库

os库提过通用的、基本的操作系统交互功能 和C中的<system>类似

三个常用操作

1.路径操作:os.path子库以path为入口,用于操作和处理文件路径

os.path.abspath(path) #返回path在当前系统中的绝对路径
#例如
#os.path.abspath("file.txt") = 'c:\\Users\\file.txt'
os.path.normpath(path) #归一化path的表示形式,统一用\\分隔路径
#例如
#os.path.normpath("c://Users//file.txt") = 'c:\\Users\\file.txt'
os.path.relpath(path) #返回当前程序和文件的相对路径
os.path.dirname(path) #返回path中的目录名称
os.path.basename(path) #返回path中最后的文件名称
#例如
#os.path.basename("c:\\Users\\file.txt") = 'file.txt'
os.path.join(path,*paths) #组合path和paths,返回一个路径字符串
#例如
#os.path.join("C:/","PYE/file.txt") = "C:/PYE/file.txt"
os.path.exists(path) #判断path对应的文件是否为已存在的目录是否存在 返回True或False
os.path.isfile(path) #判断path对应的是否为已存在的文件 返回True或False
os.path.isdir(path) #判断path对应的是否为已存在的目录 返回True或False

2.进程管理:执行程序或命令command,win中返回cmd的调用返回信息

os.system(command)
#例如 执行计算器程序 返回一个0
import os
os.system("C:\\Windows\\System32\\calc.exe")

3.环境参数:获取或改变OS中环境信息

os.chdir(path) #修改当前程序操作的路径 os.chdir(”D:“)
os.getcwd()    #返回程序的当前路径
os.getlogin()  #获取当前系统登录用户名
os.cpu_count() #获取CPU的数量
os.urandom(n)  #获得n个字节长度的随机字符串,用于加解密运算

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

#第三方库自动安装程序
import os
libs = {"numpy","matplotlib","pillow","sklearn","requests",\
    "jieba","beautifulsoup4","wheel","networkx","sympy",\
        "pyinstaller","django","flask","werobot","pyqt5",\
            "pandas","pyopengl","pypdf2","docopt","pygame"}
cnt = 0
try:
    for lib in libs:
        os.system("pip install " + lib)
        cnt += 1
        print("{} is ok!".format(cnt))
    print("All Successful")
except:
    print("Failed Somehow")

二、Python计算生态概览


1.从数据处理到人工智能

数据表示->数据清洗->数据统计->数据可视化->数据挖掘->人工智能

数据表示:采用合适方式用程序表达数据 -

数据清理:数据归一化、数据转换、异常值处理 

数据统计:数据的概要理解,数量、分布、中位数等

数据可视化:直观展示数据内涵的方式 

数据挖掘:从数据分析获得知识,产生数据外的价值 

人工智能:数据/语言/图像/视觉等方面深度分析与决策

1.1 .Python库之数据分析

Numpy:表达N维数组的最基础库

Pandas:Python数据分析高层次应用库

SciPy:数学、科学共工程计算功能库,基于Numpy

1.2.Python库之数据可视化

Matplotlib:高质量的二维数据可视化库

Seaborn:统计类数据可视化功能库

Mayavi:三维科学数据可视化

1.3.Python库之文本处理

PyPDF:用来处理pdf文件

NLTK:自然语言文本处理第三方库

Python-docx:创建或更新MS Word文件的第三方库

1.4.Python库之机器学习

Scikit-learn :机器学习方法工具集

TensorFlow:AlphaGo后的机器学习计算框架

MXNet:基于神经网络的深度学习计算框架

2.从Web解析到网络空间

2.1 .Python库之网络爬虫

使用程序将Web页面中的信息爬取下来

Requests:最友好的网络爬虫功能库

Scrapy:优秀的网络爬虫框架

pyspider:强大Web页面爬取系统

2.2 .Python库之Web信息获取

Beautiful Soup:HTML和XML的解析库 和 爬虫库一起应用

Re:正则表达式解析和处理功能库

Python-Goose:提取文章类型Web页面的功能库

2.3 .Python库之Web网站开发

Django:最流行的web应用框架

Pyramid:规模适中的Web应用框架

Flask:Web应用开发微框架

F < P < D

2.4.Python库之网络应用开发

WeRobot:微信公众号开发框架

aip:百度AI开放平台接口

MyQR:二维码生成的第三方库

正如嵩天老师所说:编程不重要,思想才重要

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!