无所不能的PYTHON(北京理工大学)
作者:互联网
使用turtle库,用户输入一个大于2的数,输出多边形
import turtle
num=int(input())
turtle.setup(600,600,200,200)
turtle.pensize(5)
angle = (360/num)
turtle.begin_fill()
for i in range(num):
turtle.forward(100)
turtle.right(angle)
turtle.fillcolor('pink')
turtle.end_fill()
turtle.done()
函数和代码复用:
lambda函数:
函数的定义:
例
函数深化:七段译码管的绘制(运用海龟turtle方法)
图例:
代码如下:
代码复用与函数递归
模块化设计:
递归
递归的实现:
函数递归的调用过程:
递归的小例子:
斐波那契数列:
定义3根柱子:src原柱子,dst目标柱子,mid中间柱子
如果n大于1,则把n-1个圆盘先放到中间柱子过渡,把最后一个圆盘放到目标柱子,再把n-1个圆盘放到目标柱子。
PyInstaller库的使用:
PyIstaller库的安装:
简单的使用方法:
科赫雪花绘制(用到递归思想)
科赫曲线绘制源代码如下
科赫雪花绘制源代码
集合类型:(无序)
如果不使用增强操作符两个集合的运算产生新的集合,如果使用就会修改原有操作符
例子
集合处理方法
输出集合的另一种方法
while True无限循环,但是A.pop(),从A中随机取出一个数,如果A为空返回一个异常,使while true退出循环。
数据去重
序列:
应用:
结果取反,字符串也可以用[::-1],因为字符串是一种特殊的序列
元组:
(不可被修改,有序)
一个元组中可以包含一个元组
列表:
列表类型操作函数和方法
列表转元组:
字典:
jieba库的使用
文件的打开与关闭
打开模式
读入的是一行字符串,然后用字符串的处理方法处理。
一般用来处理比较大的文件。
是以列表的形式按行输出。
fo.seek(0)表示写入Ls后将指针返回文件的开始,并从该地方开始文件全文的遍历
自动轨迹绘制
步骤
自动轨迹绘制
一维数组读入处理
csv数据存储格式
一个强大的词云展示库wordcloud
例子:
效果
具体参数
生成中文的wordcloud 首先需要分词
生成一个词云文件
将词云展示在一个图形中
体育竞技分析
代码实现
#MatchAnalysis.py
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 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 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 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 main():
printIntro()
probA, probB, n = getInputs()
winsA, winsB = simNGames(n, probA, probB)
printSummary(winsA, winsB)
main()
python的程序设计思维
python第三方库的安装
17万个第三方库(https://pypi.org/)
文件安装方法(http://www.lfd.uci.edu/~gohlke/pythonlibs/)
os库的基本介绍
第三方库安装脚本
代码
从数据处理到人工智能
Python库之数据分析
python库之数据可视化
python库之文本处理
例:将两个pdf文件整合成一个
例:新建一个文档,增加标题,增加段落,增加分页符,并且存储
python库之机器学习
霍兰德人格分析雷达图
代码如下:
#HollandRadarDraw
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']='SimHei'
radar_labels = np.array(['研究型(I)','艺术型(A)','社会型(S)',\
'企业型(E)','常规型(C)','现实型(R)']) #雷达标签
nAttr = 6
data = np.array([[0.40, 0.32, 0.35, 0.30, 0.30, 0.88],
[0.85, 0.35, 0.30, 0.40, 0.40, 0.30],
[0.43, 0.89, 0.30, 0.28, 0.22, 0.30],
[0.30, 0.25, 0.48, 0.85, 0.45, 0.40],
[0.20, 0.38, 0.87, 0.45, 0.32, 0.28],
[0.34, 0.31, 0.38, 0.40, 0.92, 0.28]]) #数据值
data_labels = ('艺术家', '实验员', '工程师', '推销员', '社会工作者','记事员')
angles = np.linspace(0, 2*np.pi, nAttr, endpoint=False)
data = np.concatenate((data, [data[0]]))
angles = np.concatenate((angles, [angles[0]]))
fig = plt.figure(facecolor="white")
plt.subplot(111, polar=True)
plt.plot(angles,data,'o-', linewidth=1, alpha=0.2)
plt.fill(angles,data, alpha=0.25)
plt.thetagrids(angles*180/np.pi, radar_labels,frac = 1.2)
plt.figtext(0.52, 0.95, '霍兰德人格分析', ha='center', size=20)
legend = plt.legend(data_labels, loc=(0.94, 0.80), labelspacing=0.1)
plt.setp(legend.get_texts(), fontsize='large')
plt.grid(True)
plt.savefig('holland_radar.jpg')
plt.show()
从web解析到网络空间
python库之网络爬虫
实例:
requests.get 访问网页获取网页信息
status_code获得访问网络的状态效果
text获得文本信息
python库之web信息提取
python库之web网站开发
python库之网络应用开发
python库之图形用户界面
python库之游戏开发
python库之虚拟现实
python库之图形艺术
玫瑰花的绘制
标签:turtle,winsB,plt,PYTHON,python,北京理工大学,winsA,data,无所不能 来源: https://blog.csdn.net/weixin_44517301/article/details/88381606