jieba分词
import jieba
f = open(聊斋.txt', "r", encoding='gbk')
words = jieba.lcut(txt)
counts = {}
for word in words:
if len(word) == 1:
continue
else:
counts[word] =counts.get(word,0)+1
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
for i in range(20):
word,count = items[i]
print ("{0:<10}{1:>5}".format(word, count))
模拟竞技体育
from random import random
def printIntro():
print("该程序的制作者为学号尾号为9")
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
winsA, winsB = 0, 0
for i in range(1,n+1):
scoreA, scoreB = simOneGame(probA, probB)
if scoreA > scoreB:
winsA += 1
else:
winsB += 1
if i%3==0:
if winsA>winsB:
WinsA+=1
print("第{}场胜利的为A".format(int(i/3)))
else:
WinsB+=1
print("第{}场胜利的为B".format(int(i/3)))
winsA,winsB=0,0
return WinsA, WinsB
def gameOver(a,b):
if a==30 or b==30:
return True
if a>19 and b>19:
if abs(a-b)==2:
return True
if a<=19 or b<=19:
if a==21 or b==21:
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:
scoreB +=1
serving="B"
else:
if random() < probB:
scoreB += 1
else:
scoreA += 1
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()
读书报告
Numpy:
来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多,本身是由C语言开发。这个是很基础的扩展,其余的扩展都是以此为基础。数据结构为ndarray,一般有三种方式来创建。
Pandas:
基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。最具有统计意味的工具包,某些方面优于R软件。数据结构有一维的Series,二维的DataFrame(类似于Excel或者SQL中的表,如果深入学习,会发现Pandas和SQL相似的地方很多,例如merge函数),三维的Panel(Pan(el) + da(ta) + s,知道名字的由来了吧)。
学习Pandas你要掌握的是:
1.汇总和计算描述统计,处理缺失数据 ,层次化索引
2.清理、转换、合并、重塑、GroupBy技术
3.日期和时间数据类型及工具(日期处理方便地飞起)
Matplotlib:
Python中最著名的绘图系统,很多其他的绘图例如seaborn(针对pandas绘图而来)也是由其封装而成。
绘制的图形可以大致按照ggplot的颜色显示,但是还是感觉很鸡肋。但是matplotlib的复杂给其带来了很强的定制性。其具有面向对象的方式及Pyplot的经典高层封装。
需要掌握的是:
1.散点图,折线图,条形图,直方图,饼状图,箱形图的绘制。
2.绘图的三大系统:pyplot,pylab(不推荐),面向对象
3.坐标轴的调整,添加文字注释,区域填充,及特殊图形patches的使用
4.金融的同学注意的是:可以直接调用Yahoo财经数据绘图
Scipy:
方便、易于使用、专为科学和工程设计的Python工具包.它包括统计,优化,整合,线性代数模块,傅里叶变换,信号和图像处理,常微分方程求解器等等。基本可以代替Matlab,但是使用的话和数据处理的关系不大,数学系,或者工程系相对用的多一些。
解决一些具体问题(Pandas)
import pandas as pda # 使用pandas生成数据 # Series代表某一串数据 index指定行索引名称,Series索引默认从零开始 # DataFrame代表行列整合出来的数据框,columns 指定列名 a = pda.Series([8, 9, 2, 1], index=['one', 'two', 'three', 'four']) # 以列表的格式创建数据框 b = pda.DataFrame([[5,6,2,3],[3,5,1,4],[7,9,3,5]], columns=['one', 'two', 'three', 'four'],index=['one', 'two', 'three']) # 以字典的格式创建数据框 c = pda.DataFrame({ 'one':4, # 会自动补全 'two':[6,2,3], 'three':list(str(982)) }) # b.head(行数)# 默认取前5行头 # b.tail(行数)# 默认取后5行尾 # b.describe() 统计数据的情况 count mean std min 25% max e = b.head() f = b.describe() # 数据的转置,及行变成列,列变成行 g = b.T
Matplotlib图像处理
import matplotlib.pyplot as plt import numpy as np # 生成测试数据 x = np.linspace(-3, 3, 50) y1 = 2*x + 1 y2 = x**2 # 生成画布 plt.figure(facecolor='grey') # figure()中的属性 ''' **num=3** 画出来图的标题就是‘Figure 3’ 如果传一个str,eg. num='折线图' 图的标题就是‘折线图’ **figsize=(8, 4)** 指定绘图对象的宽度和高度,单位为英寸,一英寸=80px **facecolor='blue'** 背景颜色,默认是白色 也可以以‘#+6位16进制数’给出,eg. '#00ff00' **edgecolor='red'** 边框颜色,默认是白色 ''' # 画图 plt.plot(x, y1, linestyle='--') plt.plot(x, y2) # plot的属性 ''' **linewidth=3** 线条宽度 也可以写作 lw=3 **markersize='20'** 线上标记的尺寸 注意要传字符串类型的值 **marker='2'** 线上的标记 ============= =============================== character description ============= =============================== ``'.'`` point marker ``','`` pixel marker ``'o'`` circle marker ``'v'`` triangle_down marker ``'^'`` triangle_up marker ``'<'`` triangle_left marker ``'>'`` triangle_right marker ``'1'`` tri_down marker ``'2'`` tri_up marker ``'3'`` tri_left marker ``'4'`` tri_right marker ``'s'`` square marker ``'p'`` pentagon marker ``'*'`` star marker ``'h'`` hexagon1 marker ``'H'`` hexagon2 marker ``'+'`` plus marker ``'x'`` x marker ``'D'`` diamond marker ``'d'`` thin_diamond marker ``'|'`` vline marker ``'_'`` hline marker ============= =============================== **linestyle=':'** 线的类型 ============= =============================== character description ============= =============================== ``'-'`` solid line style ``'--'`` dashed line style ``'-.'`` dash-dot line style ``':'`` dotted line style ============= =============================== 也可表示为linestyle='dashed' **colors='r'** The supported color abbreviations are the single letter codes ============= =============================== character color ============= =============================== ``'b'`` blue ``'g'`` green ``'r'`` red ``'c'`` cyan ``'m'`` magenta ``'y'`` yellow ``'k'`` black ``'w'`` white ============= =============================== 也可用'#ff0000'这种形式表示 ''' # 必须要有这一句画图才能显示 plt.show()
pygame小游戏
# -*-coding:utf-8 -*-
import sys # 导入sys模块
import pygame # 导入pygame模块
pygame.init() # 初始化pygame
size = width, height = 1280, 640 # 设置窗口
screen = pygame.display.set_mode(size) # 显示窗口
color = (0, 0, 0) # 设置颜色
ball = pygame.image.load("E-1083950-42851932.jpg") # 加载图片
ballrect = ball.get_rect() # 获取矩形区域
speed = [5, 5] # 设置移动的X轴、Y轴距离
clock = pygame.time.Clock() # 设置时钟
# 执行死循环,确保窗口一直显示
while True:
clock.tick(60) # 每秒执行60次
# 检查事件
for event in pygame.event.get():
if event.type == pygame.QUIT: # 如果点击关闭窗口,则退出
sys.exit()
ballrect = ballrect.move(speed) # 移动小球
# 碰到左右边缘
if ballrect.left < 0 or ballrect.right > width:
speed[0] = -speed[0]
# 碰到上下边缘
if ballrect.top < 0 or ballrect.bottom > height:
speed[1] = -speed[1]
screen.fill(color) # 填充颜色
screen.blit(ball, ballrect) # 将图片画到窗口上
pygame.display.flip() # 更新全部显示
pygame.quit() # 退出pygame
标签:winsB,None,winsA,ballrect,print,pygame,marker From: https://www.cnblogs.com/Aiden1221/p/17913876.html