一、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()
三种人类思特征
-
逻辑思维:推理和演绎,数学为代表,A->B B->C 可证 A->C
-
实证思维:实验和验证,物理为代表
-
计算思维:设计和构造,计算机为代表
计算思维
抽象为=问题的计算过程,利用计算机自动化求解
计算生态
以开源项目为组织形式,充分利用“共识原则”和“社会利他”组织人员,在竞争发展、相互依存和迅速迭代中完成技术的更新换代,形成技术的自我演化路径
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:二维码生成的第三方库
正如嵩天老师所说:编程不重要,思想才重要
来源:CSDN
作者:Miserable_ccf
链接:https://blog.csdn.net/sinat_40872274/article/details/104225826