@Bruce1Tone
2021-05-02T08:35:09.000000Z
字数 5394
阅读 457
计算机
唐智崴 Python
| 指令 | 作用 |
|---|---|
| ord(a) | 把字符串转换成ASCII码值 |
| pinrt(x, end = " ") | 不换行,以空格分隔输出 |
| sys.stdout.write() | 无空格输出,但是要import sys |
| global x | 在函数内部定义全局变量x,然后就可以修改函数外部的变量x值了 |
| x.encoding='gbk' | 显示编码错误的时候可以尝试添加这个 |
| print(round(n,2)) | 把n保留2位小数输出 |
| 打包exe | 把.py文件打包成.exe文件的方法 |
| math.ceil(x) | x向上取整,需要import math |
| math.floor(x) | x向下取整,需要import math |
生成不重复的随机数
import random#A为最小数,B为最大数resultlist = random.sample(range(A,B+1),count)#sample(x,y)表示从列表x中,选择y个不重复的元素
list类型用中括号表示,其中的元素可以修改
list相关操作:
| 指令 | 作用 |
|---|---|
| len(list) | 返回列表长度 |
| list.count(x) | 返回x在list中出现的次数 |
| list.append(x) | 将x添加在list的末尾 |
| list.insert(a,x) | 将x插入到第a个元素之后 |
| list.index(x) | 返回x在list中的索引,如果不存在则返回错误 |
| list.reverse() | 将list倒序排列 |
| list.sort() | 将list排序 |
| list.pop() | 弹出list的末尾(栈顶)元素 |
| list.popleft() | 弹出最左边的元素 |
| del list[a] | 删除索引为a的元素 |
| del list[a:b] | 删除索引为a到b-1的元素 |
注意:
from collections import dequelist = deque([x,x,x,x,...])list.popleft()
列表推导式:
list = [1,2,3]list = [3*x for x in list]print(list)
输出结果是[3,6,9]
list = [[x,x+2] for x in list]
输出结果[[1,3] , [2,4] , [3,5]]
list = [3*x for x in list if x<=2]
输出结果是[3,6]
vex1 = [1,2]vec2 = [3,4]vec = [x*y for x in vec1 for y in vec2]
输出结果是[3,4,6,8]
ori = [[1,2,3],[4,5,6],[7,8,9],]new = [[row[i] for row in ori] for i in range(3)]print(new)
输出结果为[[1,4,7],[2,5,8],[3,6,9]]
for i,v in enumerate(list):print i,v
输出为 0 xxx, 1 xxx,...
a = ['x','y','z']b = ['p','q','r']for m,m in zip(a,b):print('{0}{1}'.format(a,b))
输出 xp,yq,zr
集合由不同的元素构成,相同元素会自动删除
setname = {value1,value2...} #定义方法1set(value) #定义方法2#当定义空集合的时候,只能采用第二种方法
set相关操作:
| 指令 | 作用 |
|---|---|
| s.add(x) | 将元素x添加到集合s中 |
| s.update(x) | 将x添加到s,且x可以为list、tuple、dictionary(key) |
| s.remove(x) | 将x从s中移除,若不存在则会发生错误 |
| s.discard(x) | 将x从s中移除,若不存在也不会发生错误 |
| s.pop() | 随机删除s一个元素 |
| len(s) | 计算集合s元素个数 |
| s.clear | 清空集合 |
a = 'abcde'a = {x for x in a if x not in 'abcd'}print(a)
输出为 ['e']
无序存储,格式为大括号{}内的:{键key: 值value}
dict = {} #建立空字典dict[key] = value #定义字典某键值内容dict = {key1:value1, key2:value2, ...} #定义字典多个键值内容
| 指令 | 作用 |
|---|---|
| del dict[key] | 删除键 |
| del dict | 删除字典 |
| dict.clear() | 清空字典 |
| len(dict) | 计算字典中键的总数 |
| dict.update(dict2) | 将dict2中的键值更新到dict中 |
- 字典的遍历:
for x, y in dict.items():print x,y
| 指令 | 作用 | 备注 |
|---|---|---|
| x**y | 幂计算,即x^y | |
| x//y | x/y的结果向下取整 | |
| math.log(b,a) | 计算 | 需要导入math库 |
| 指令 | 作用 |
|---|---|
| a,b = x,y | 复合赋值,a=x, b=y |
| if-elif-elif-...-elif | 类似于switch-case的分支结构 |
| while-else | 循环条件不满足时,执行else |
for i in range(0,10,3)print(i)
按增量为3输出0-9,即 0 3 6 9
with open("test.txt","wt")as out_file:out_file.write("要写入的内容")
with open("test.txt","rt")as in_file:text = in_file.read()#将test.txt文件的内容读取到text中
import xlwt #需要用到xlwt表格写入库book = xlwt.Workbook() #创建一个新的excelsheet = book.add_sheet('case1_sheet') #添加一个名为case1_sheet的sheet页sheet.write(row,col,s) #在row行col列添加一个值为s的数据book.save('stu_1.xls') #保存在当前目录,文件名为stu_1.xls
import xlrdbook = xlrd.open_workbook('stu_1.xls')sheet = book.sheet_by_index(0) #按照索引打开sheetsheet2 = book.sheet_by_name('case1_sheet') #按照sheet的名字打开sheetprint(sheet.cell(0,0).value) #打印单元格数值sheet.nrows #获取行数sheet.ncols #获取列数
import xlrdimport xlwtfrom xlutils import copybook = slrd.open_workbook('test.xlsx') #读入文件booksheet_rd = book.sheet_by_index(0) #读入book的sheet1book_wt = copy(book) #拷贝出临时的book_wtsheet_wt = book_wt.get_sheet(0) #获取写入用的sheet#所有写入的操作对sheet_wt进行book_wt.save(test.xlsx) #将book_wt覆盖原来的book保存
获取某列数据
col_data = sheet.col_values(0)[0:10]print(col_data)
输出结果是:第1列第1~11行的数据
在编写模块文件的时候,加入一句:
if__name__=='__main__':
这一句后面的所有语块只会在该脚本单独运行时运行,而不会在被其他脚本载入的时候运行
try:statement 1 #正常执行语句1except 错误类型:statement 2 #如果发生该类型错误,则执行语句2else:statement 3 #如果没有发生该错误,则执行语句3
实例
读取不定长度的excel表格
row = 0col = 0while True:row += 1try:data.append(sheet.cell(row,col).value)except IndexError:break
| 指令 | 作用 | 备注 |
|---|---|---|
| pygame.init() | 初始化游戏 | |
| screen = pygame.display.set_mode((xxx,xxx)) | 设置屏幕,大小为(xxx,xxx) | |
| pygame.event.get() | 获取鼠标、键盘等事件 | |
| sys.exit() | 退出游戏 | |
| pygame.dispay.flip() | 不断更新屏幕,显示新元素,隐藏旧元素 | |
| screen.fill(bg_color) | 填充颜色 | bg_color = (x,x,x) |
| 指令 | 功能 | 参数 |
|---|---|---|
| pygame.image.load('location') | 加载图片 | location = images/ship.bmp |
| xxx.image.get.rect() | 获取xxx的外接矩形 | |
| rect.centerx | 居中至x轴 | center, centerx, centery |
| rect.bottom | 与屏幕边缘对齐 | top,bottom,left,right |
| rect.xxx | 矩形的几个位置 | left,right,top,bottom |
| pygame.transform.scale(image,scale) | 转换图像尺寸 | image = location, scale = (x,x) |
from numpy import npa = np.array([1,2,3]) #一维数组b = np.array([[1,2],[3,4]]) #二维数组
是一种表格型数据,可以根据字典来创建
例如:
data = {'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],'year':[2000,2001,2002,2001,2002],'pop':[1.5,1.7,3.6,2.4,2.9]}frame = pd.DataFrame(data)frame
输出:
pop state year0 1.5 Ohio 20001 1.7 Ohio 20012 3.6 Ohio 20023 2.4 Nevada 20014 2.9 Nevada 2002
创建DataFrame类型:
a = [1,2,3]b = [4,5,6]df = np.DataFrame([a,b],columns = ['one','two','three'])
输出:
one two three0 1 2 31 4 5 6
行索引是index,列索引是columns
可以直接以DataFrame的文件类型读入excel文件:
df = pd.read_excel("data.xlsx")df = pd.read_excel("data.xlsx",converters = {u'fund_code':str}) #强制转换为字符df = pd.read_excel("data.xls",header = None) #无表头
df = np.DataFrame(list)df.to_excel('xxxx.xls')
一般用:
import numpy as npimport matplotlib.pyplot as pltplt.show() #显示图像
plt.plot(x,y,type)函数
例如:
plt.plot(array_1,array_2)plt.title('title',fontsize = 20) #按固定字体大小写标题plt.xlabel('xxx') #x轴的标签为xxxplt.ylabel('yyy') #y轴的标签为yyyplt.show()
其中,type的参数有:
类型:
| 参数 | 类型 | 参数 | 类型 |
|---|---|---|---|
- |
实线 | -- |
虚线 |
-. |
点画线 | : |
点线 |
. |
点 | , |
像素点 |
o |
圆点 | s |
正方点 |
^/> |
三角形 | * |
星形点 |
2/4 |
奔驰三角形 |
颜色:
| 参数 | 类型 |
|---|---|
b |
blue |
g |
green |
r |
red |
c |
cyan青色 |
m |
magenta品红 |
y |
yellow |
k |
black |
w |
white |
规定类型的绘制:
plt.plot(array_1,array_2,'ro') #红色圆点plt.plot(array_1,array_2,'b--') #蓝色虚线
用法如下
plt.axis([xa,xb,ya,yb])#则显示x的(xa,xb)和y的(ya,yb)范围
基本函数是plt.scatter(x,y,c,marker)
其中c表示color,marker表示点的形状
实例:
plt.scatter(x,y,c = 'b', marker = '.')