Python二级
我自己总结的资料。
参考全国计算机等级考试二级教程 Python语言程序设计 (2018年版)
需要资料和题的可以找我。
链接:https://pan.baidu.com/s/1e8IZD0x9tOr0Fdxx2G0PCw 提取码:p1qb
绘制一个五角红星图形
from turtle import *
color('green','red')# 画笔颜色 填充颜色
begin_fill()#开始填充
for i in range(5):
fd(300)#长度
rt(144)#角度end_fill()#结束填充
done()#显示停留
对一个循环计数一千万次的程序记录并输出其运行时间
import time
limit = 10 * 1000 * 1000
start = time.perf_counter()
while True:
limit -= 1
if limit <= 0:
break
delta = time.perf_counter() - start
print("程序运行时间是:{}秒".format(delta))
绘制7个不同颜色的圆圈,组成七彩圆圈图案
import turtle
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'purple']
for i in range(7):
c = colors[i] # 颜色
turtle.color(c, c)# 画笔 填充颜色
turtle.begin_fill()# 开始填充
turtle.rt(360 / 3)# 第二个开始的角度(弧度)360度准备画几个
turtle.circle(100) # 直径
turtle.end_fill()
turtle.done()
>>>s = "等级考试"
>>>"{:25}".format(s) #左对齐,默认
'等级考试 '
>>>"{:^25}".format(s) #居中对齐
' 等级考试 '
>>>"{:>25}".format(s) #右对齐
' 等级考试'
>>>"{:*^25}".format(s) #居中对齐且填充*号
'**********等级考试***********'
>>>"{:+^25}".format(s) #居中对齐且填充+号
'++++++++++等级考试+++++++++++'
>>>"{:十^25}".format(s) #居中对齐且填充汉字“十”
'十十十十十十十十十十等级考试十十十十十十十十十十十'
>>>"{:^1}".format(s) #z指定宽度为1,不足变量s的宽度#
'等级考试'
输出字符相反
str = input("请输入:")
long = len(str) - 1
for i in range(long+1):
print(str[long-i], end='')
abs(x) x的绝对值
divmod(x, y) (x//y, x%y),输出为二元组形式(也称为元组类型)
pow(x, y[, z]) (x**y)%z,[..]表示该参数可以省略,即:pow(x,y),它与x**y相同
round(x[, ndigits]) 对x四舍五入,保留ndigits位小数。round(x)返回四舍五入的整数值
max(x1, x2, …, xn) x1, x2, …, xn的最大值,n没有限定
min(x1, x2, …, xn) x1, x2, …, xn的最小值,n没有限定
print(chr(1000))
len(x) 返回字符串x的长度,也可返回其他组合数据类型的元素个数
str(x) 返回任意类型x所对应的字符串形式
chr(x) 返回Unicode编码x对应的单字符
ord(x) 返回单字符x表示的Unicode编码
hex(x) 返回整数x对应十六进制数的小写形式字符串
oct(x) 返回整数x对应八进制数的小写形式字符串
字符串处理方法
str.lower() 返回字符串str的副本,全部字符小写
str.upper() 返回字符串str的副本,全部字符大写
str.split(sep=None) 返回一个列表,由str根据sep被分割的部分构成
str.count(sub) 返回sub子串出现的次数
str.replace(old, new) 返回字符串str的副本,所有old子串被替换为new
str.center(width, fillchar) 字符串居中函数,fillchar参数可选
str.strip(chars) 从字符串str中去掉在其左侧和右侧chars中列出的字符
str.join(iter) 将iter变量的每一个元素后增加一个str字符串
数字类型之间的转换
int(x) 将x转换为整数,x可以是浮点数或字符串
float(x) 将x转换为浮点数,x可以是整数或字符串
str(x) 将x转换为字符串,x可以是整数或浮点数
string = input("请输入明文")
for i in string:
if "a" <= i <= "z":
print(chr(ord(i) + 3), end="")
elif "A" <= i <= "Z":
print(chr(ord(i) + 3), end="")
else:
print(i, end="")
ptxt = input("请输入明文文本: ")
for p in ptxt:
if "a" <= p <= "z":
print(chr(ord("a")+(ord(p)-ord("a")+3)%26), end='')
elif "A" <= p <= "Z":
print(chr(ord("A")+(ord(p)-ord("A")+3)%26), end='')
else:
print(p, end='')
s = eval(input("请输出一个整数:"))
token = "" if s % 3 == 0 and s % 5 == 0 else "不"
print("这个数字{}能够同时被3和5整除".format(token))
猜数字
import random
rand = random.randint(1, 10000)
while True:
try:
num = eval(input("请输入数字:"))
except:
print("请输入正确数字")
continue
if num > rand:
print("您输入的数字大了")
elif num < rand:
print("您输入的数字小了")
else:
print("恭喜你")
break
txt = '''# 人生得意须尽欢,莫使金樽空对月。# 天生我材必有用,千金散尽还复来。# '''
linewidth = 30 # 预定的输出宽度
def lineSplit(line):
plist = [',', '!', '?', ',', '。', '!', '?']
for p in plist:
line = line.replace(p, '\n')
return line.split('\n')
def linePrint(line):
global linewidth
print(line.center(linewidth, chr(12288)))
newlines = lineSplit(txt)
for newline in newlines:
linePrint(newline)
集合类{} set()
S.add(x) 如果数据项x不在集合S中,将x增加到s
S.remove(x) 如果x在集合S中,移除该元素;不在产生KeyError异常
S.clear() 移除S中所有数据项
len(S) 返回集合S元素个数
x in S 如果x是S的元素,返回True,否则返回False
x not in S 如果x不是S的元素,返回True,否则返回Fal
集合没有重复元素
s = {1.2, 2.1, 1, 1, 2, 2, 3, 2}
print(s)
序列类
x in s 如果x是s的元素,返回True,否则返回False
x not in s 如果x不是s的元素,返回True,否则返回False
s + t 连接s和ts * n 或 n * s 将序列s复制n次
s[i] 索引,返回序列的第i个元素
s[i: j] 切片,返回包含序列s第i到j个元素的子序列(不包含第j个元素)
s[i: j: k] 步骤切片,返回包含序列s第i到j个元素以k为步数的子序列
len(s) 序列s的元素个数(长度)
min(s) 序列s中的最小元素
max(s) 序列s中的最大元素
s.index(x) 序列s中第一次出现元素x的位置
s.count(x) 序列s中出现x的总次数
映射类 键-值 列表[] list()
len(ls) 列表ls的元素个数(长度)
min(ls) 列表ls中的最小元素
max(ls) 列表ls中的最大元素
list(x) 将x转变成列表类型
ls.append(x) 在列表ls最后增加一个元素x
ls.insert(i, x) 在列表ls第i位置增加元素x
ls.clear() 删除ls中所有元素
ls.pop(i) 将列表ls中第i项元素取出并删除该元素
ls.remove(x) 将列表中出现的第一个元素x删除
ls.reverse() 列表ls中元素反转
ls.copy() 生成一个新列表,复制ls中所有元素
字典 {'':''}
len(d) 字典d的元素个数(长度)
min(d) 字典d中键的最小值
max(d) 字典d中键的最大值
dict() 生成一个空字典
d.keys() 返回所有的键信息
d.values() 返回所有的值信息
d.items() 返回所有的键值对
d.get(key, default) 键存在则返回相应值,否则返回默认值
d.pop(key, default) 键存在则返回相应值,同时删除键值对,否则返回默认值
d.popitem() 随机从字典中取出一个键值对,以元组(key, value)形式返回,取出后从字典中删除这个键值对。
d.clear() 删除所有的键值对
def getText():
txt = open("hamlet.txt", "r").read()
txt = txt.lower()
for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':
txt = txt.replace(ch, " ") #将文本中特殊字符替换为空格
return txt
hamletTxt = getText()
words = hamletTxt.split()
counts = {}
for word in words:
counts[word] = counts.get(word, 0) + 1
items = list(counts.items())
items.sort(key=lambda x: x[1], reverse=True)
for i in range(10):
word, count = items[i]
print("{0:<10}{1:>5}".format(word, count))
'r' 只读模式,如果文件不存在,返回异常FileNotFoundError,默认值
'w' 覆盖写模式,文件不存在则创建,存在则完全覆盖源文件
'x' 创建写模式,文件不存在则创建,存在则返回异常FileExistsError
'a' 追加写模式,文件不存在则创建,存在则在原文件最后追加内容
'b' 二进制文件模式
't' 文本文件模式,默认值
'+' 与r/w/x/a一同使用,在原功能基础上增加同时读写功能
f.read(size=-1) 从文件中读入整个文件内容。参数可选,如果给出,读入
前size长度的字符串或字节流
f.readline(size = -1) 从文件中读入一行内容。参数可选,如果给出,读入该行
前size长度的字符串或字节流
f.readlines(hint=-1) 从文件中读入所有行,以每行为元素形成一个列表。参数
可选,如果给出,读入hint行
f.seek(offset) 改变当前文件操作指针的位置,offset的值:
0:文件开头; 2: 文件结尾
一维数据的处理
对一维数据进行处理首先需要从CSV格式文件读入一维数据,并将其表示为列表对象
f = open("save.txt","r")
ls = f.read().strip('\n').split(",")
# print(f)f.close()print(ls)
二维数据处理
对二维数据进行处理首先需要从CSV格式文件读入二维数据,并将其表示为二维列表对象。借鉴
一维数据读取方法,从CSV文件读入数据的方法如下
f = open("cpi.csv","r")
ls = []
for line in f:
ls.append(line.strip('\n').split(","))
f.close()
print(ls)
基本的Python内置函数
abs(x) x的绝对值 如果x是复数,返回复数的模
all(x) 组合类型变量x中所有元素都为真时返回True,否则返回False;若x为空,返回True
any(x) 组合类型变量x中任一元素都为真时返回True,否则返回False;若x为空,返回False
bin(x) 将整数x转换为等值的二进制字符串 bin(1010)的结果是'0b1111110010'
bool(x) 将x转换为Boolean类型,即True或False
bool('') 的结果是False
chr(i) 返回Unicode为i的字符
chr(9996)的结果是'✌ '
complex(r,i) 创建一个复数 r + i*1j,其中i可以省略
complex(10,10)的结果是10+10j
dict() 创建字典类型
dict()的结果是一个空字典{}
divmod(a,b) 返回a和b的商及余数
divmod(10,3)结果是一个(3,1)
eval(s) 计算字符串s作为Python表达式的值
eval('1+99')的结果是100
exec(s) 计算字符串s作为Python语句的值
exec('a = 1+999')运行后,变量a的值为1000
float(x) 将x转换成浮点数
float(1010)的结果是1010.0
hex(x) 将整数转换为16进制字符串
hex(1010)的结果是'0x3f2'
input(s) 获取用户输入,其中s是字符串,作为提示信息s可选
int(x) 将x转换成整数,int(9.9)的结果是9list(x) 创建或将变量x转换成一个列表类型
list({10,9,8})的结果是[8,9,10]
max(a1,a2,…) 返回参数的最大值
max(1,2,3,4,5)的结果是5min(a1,a2,…) 返回参数的最小值
min(1,2,3,4,5)的结果是1oct(x) 将整数x转换成等值的八进制字符串形式
oct(1010)的结果是'0o1762'
open(fname, m) 打开文件,包括文本方式和二进制方式等其中,m部分可以省略,默认是以文本可读形式打开
ord(c) 返回一个字符的Unicode编码值ord('字')的结果是23383
pow(x,y) 返回x的y次幂pow(2,pow(2,2))的结果是16
print(x) 打印变量或字符串x
print()的end参数用来表示输出的结尾字符
range(a,b,s) 从a到b(不含)以s为步长产生一个序列list(range(1,10,3))的结果是[1, 4, 7]
reversed(r) 返回组合类型r的逆序迭代形式for i in reversed([1,2,3])将逆序遍历列表
round(n) 四舍五入方式计算n,round(10.6)的结果是11set(x) 将组合数据类型x转换成集合类型
set([1,1,1,1])的结果是{1}
sorted(x) 对组合数据类型x进行排序,默认从小到大sorted([1,3,5,2,4])的结果是[1,2,3,4,5]
str(x) 将x转换为等值的字符串类型str(0x1010)的结果是'4112'
sum(x) 对组合数据类型x计算求和结果sum([1,3,5,2,4])的结果是15
type(x) 返回变量x的数据类型type({1:2})的结果是
窗体函数
turtle.setup(width, height, startx, starty)
作用:设置主窗体的大小和位置参数:
width :窗口宽度,如果值是整数,表示的像素值;如果值是小数,表示窗口宽度与屏幕的比例;
height: 窗口高度,如果值是整数,表示的像素值;如果值是小数,表示窗口高度与屏幕的比例;
startx:窗口左侧与屏幕左侧的像素距离,如果值是None,窗口位于屏幕水平中央;
starty:窗口顶部与屏幕顶部的像素距离,如果值是None,窗口位于屏幕垂直中央;
画笔状态函数
pendown() 放下画笔
penup() 提起画笔,与
pendown()配对使用
pensize(width) 设置画笔线条的粗细为指定大小
color() 设置画笔的颜色
begin_fill() 填充图形前,调用该方法
end_fill() 填充图形结束
filling() 返回填充的状态,True为填充,False为未填充
clear() 清空当前窗口,但不改变当前画笔的位置
reset() 清空当前窗口,并重置位置等状态为默认值
screensize() 设置画布的长和宽
hideturtle() 隐藏画笔的turtle形状
showturtle() 显示画笔的turtle形状
isvisible() 如果turtle可见,则返回True
画笔运动函数
forward() 沿着当前方向前进指定距离
backward() 沿着当前相反方向后退指定距离
right(angle) 向右旋转angle角度
left(angle) 向左旋转angle角度
goto(x,y) 移动到绝对坐标(x,y)处
setx( ) 将当前x轴移动到指定位置s
ety( ) 将当前y轴移动到指定位置
setheading(angle) 设置当前朝向为angle角度
home() 设置当前画笔位置为原点,朝向东。
circle(radius,e) 绘制一个指定半径r和角度e的圆或弧形
dot(r,color) 绘制一个指定半径r和颜色color的圆点
undo() 撤销画笔最后一步动作
speed() 设置画笔的绘制速度,参数为0-10之间
random库与随机数运用
seed(a=None) 初始化随机数种子,默认值为当前系统时间
random() 生成一个[0.0, 1.0)之间的随机小数
randint(a, b) 生成一个[a,b]之间的整数
getrandbits(k) 生成一个k比特长度的随机整数
randrange(start, stop[, step]) 生成一个[start, stop)之间以step为步数的随机整数
uniform(a, b) 生成一个[a, b]之间的随机小数
choice(seq) 从序列类型(例如:列表)中随机返回一个元素
shuffle(seq) 将序列类型中元素随机排列,返回打乱后的序列
sample(pop, k) 从pop类型中随机选取k个元素,以列表类型返回
import time
print(time.localtime())
print(time.gmtime())
print(time.strftime("%Y-%m-%d %H:%M:%S"))
strftime()方法的格式化控制符
格式化字符串 日期/时间 值范围和实例
%Y 年份 0001~9999,例如:1900
%m 月份 01~12,例如:10
%B 月名 January~December,例如:April
%b 月名缩写 Jan~Dec,例如:Apr
%d 日期 01 ~ 31,例如:25
%A 星期 Monday~Sunday,例如:Wednesday
%a 星期缩写 Mon~Sun,例如:Wed
%H 小时(24h制) 00 ~ 23,例如:12
%I 小时(12h制) 01 ~ 12,例如:7
%p 上/下午 AM, PM,例如:PM
%M 分钟 00 ~ 59,例如:26
%S 秒 00 ~ 59,例如:26
time.perf_counter()计时函数 记录程序开始运行后的时间
import time
def coreLoop():
limit = 10**8
while (limit > 0):
limit -= 1
def otherLoop1():
time.sleep(0.2)
def otherLoop2():
time.sleep(0.4)
def main():
startTime = time.localtime()
print('程序开始时间:', time.strftime('%Y-%m-%d %H:%M:%S', startTime))
startPerfCounter = time.perf_counter()
otherLoop1()
otherLoop1PerfCounter = time.perf_counter()
otherLoop1Perf = otherLoop1PerfCounter - startPerfCounter
coreLoop()
coreLoopPerfCounter = time.perf_counter()
coreLoopPerf = coreLoopPerfCounter - otherLoop1PerfCounter
otherLoop2()
otherLoop2PerfCounter = time.perf_counter()
otherLoop2Perf = otherLoop2PerfCounter -
coreLoopPerfCounter
endPerfCounter = time.perf_counter()
totalPerf = endPerfCounter - startPerfCounter
endTime = time.localtime()
print("模块1运行时间是:{}秒".format(otherLoop1Perf))
print("核心模块运行时间是:{}秒".format(coreLoopPerf))
print("模块2运行时间是:{}秒".format(otherLoop2Perf))
print("程序运行总时间是:{}秒".format(totalPerf))
print('程序结束时间:', time.strftime('%Y-%m-%d %H:%M:%S', endTime))
main()
PyInstaller
是一个十分有用的Python第三方库,它能够将Python源文件打包,变成直接可运行的可执行文件。
PyInstaller -F SnowView.py
PyInstaller有一些常用参数
-h, --help 查看帮助
--clean 清理打包过程中的临时文件
-D, --onedir 默认值,生成dist目录
-F, --onefile 在dist文件夹中只生成独立的打包文件
-i <图标文件名.ico > 指定打包程序使用的图标(icon)文件
jieba
jieba库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组。除了分词,jieba还提供增加自定义中文单词的功能
jieba库支持三种分词模式:
精确模式,将句子最精确地切开,适合文本分析;
jieba.lcut(s)即将字符串分割成等量的中文词组,返回结果是列表类型
全模式,把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;
jieba.lcut(s, cut_all = True)将字符串的所有分词可能均列出来,返回结果是列表类型,冗余性最大
搜索引擎模式,在精确模式基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词
jieba.lcut_for_search(s)首先执行精确模式,然后再对其中长词进一步切分获得最终结果
import jieba
print(jieba.lcut("全国计算机等级考试"))
wordcloud
词云以词语为基本单元,根据其在文本中出现的频率设计不同大小以形成视觉上不同效果,形成“关键词云层”或“关键词渲染”,从而使读者只要“一瞥”即可领略文本的主旨。
import jieba
from wordcloud
import WordCloudtxt = '程序设计语言是计算机能够理解和识别用户操作意图的一种交互体系,它按照特定规则组织计算机指令,使计算机能够自动进行各种运算处理。'
words = jieba.lcut(txt) # 精确分词
newtxt = ' '.join(words) # 空格拼接
wordcloud = WordCloud(font_path="msyh.ttc").generate(newtxt)
wordcloud.to_file('词云中文例子图.png') # 保存图片'''#
WordCloud对象创建的常用参数
font_path 指定字体文件的完整路径,默认None
width 生成图片宽度,默认400像素
height 生成图片高度,默认200像素
mask 词云形状,默认None,即,方形图
min_font_size 词云中最小的字体字号,默认4号
font_step 字号步进间隔,默认1
min_font_size 词云中最大的字体字号,默认None,根据高度自动调节
max_words 词云图中最大词数,默认200s
topwords 被排除词列表,排除词不在词云中显示
background_color 图片背景颜色,默认黑色
generate(text) 由text文本生成词云
to_file(filename) 将词云图保存为名为filename的文件
from wordcloud import WordCloud
from scipy.misc import imread
mask = imread('AliceMask.png')
with open('AliceInWonderland.txt', 'r', encoding='utf-8') as file:
text = file.read()
wordcloud = WordCloud(background_color="white", \
width=800, \
height=600, \
max_words=200, \
max_font_size=80, \
mask = mask, \
).generate(text)
# 保存图片
wordcloud.to_file('AliceInWonderland.png')
爬虫方向
requests
requests库是一个简洁且简单的处理HTTP请求的第三方库,它的最大优点是程序编写过程更接近正常URL访问过程。这个库建立在Python语言的urllib3库基础上。request库支持非常丰富的链接访问功能
scrapy
scrapy是Python开发的一个快速的、高层次的Web获取框架。不同于简单的网络爬虫功能,scrapy框架本身包含了成熟网络爬虫系统所应该具有的部分共用功能,scrapy用途广泛,可以应用于专业爬虫系统的构建、数据挖掘、网络监控和自动化测试等领域
数据分析方向
numpy
numpy是Python的一种开源数值计算扩展第三方库,用于处理数据类型相同的多维数组(ndarray),简称“数组”。这个库可用来存储和处理大型矩阵,比Python语言提供的列表结构要高效的多。numpy提供了许多高级的数值编程工具,如:矩阵运算、矢量处理、N维数据变换等
scipy
scipy是一款方便、易于使用、专为科学和工程设计的# Python工具包。在numpy库的基础上增加了众多的数学、科学以及工程计算中常用的库函数。它包括统计、优化、整合、线性代数、傅里叶变换、信号分析、图像处理、常微分方程求解等众多模块
pandas
pandas是基于numpy扩展的一个重要第三方库,它是为# 了解决数据分析任务而创建的。Pandas提供了一批标准的数据模型和大量快速便捷处理数据的函数和方法,提供了高效地操作大型数据集所需的工具。p a n d a s 提 供 两 种 最 基 本 的 数 据 类 型 :Series和DataFrame,分别代表一维数组和二维数组类型
文本处理
pdfminer
pdfminer是一个可以从PDF文档中提取各类信# 息的第三方库。与其他PDF相关的工具不同,它能 够 完 全 获 取 并 分 析 P D F 的 文 本 数 据 。Pdfminer能够获取PDF中文本的准确位置、字体、行数等信息,能够将PDF文件转换为HTML及文本格式
pdfminer
pdfminer包含两个重要的工具:pdf2txt.py和dumppdf.py。pdf2txt.py能够从PDF文件中提取所有文本内容。dumppdf.py能够把PDF文件内容变成XML格式,并进一步提取其中的图片
openpyxl
openpyxl是一个处理Microsoft Excel文档的Python第三方库,它支持读写Excel的xls、xlsx、xlsm、xltx、xltm等格式文件,并进一步能处理Excel文件中excel工作表、表单和数据单元
python-docx
python-docx是一个处理Microsoft Word文档的Python第三方库,它支持读取、查询以及修改doc、docx等格式文件,并能够对Word常见样式进行编程设置,包括:字符样式、段落样式、表格样式等,进一步可以使用这个库实现添加和修改文本、图像、样式和文档等功能
beautifulsoup4
beautifulsoup4库,也称为Beautiful Soup库或bs4库,用于解析和处理HTML和XML。需要注意,它不是BeautifulSoup库。它的最大优点是能根据HTML和XML语法建立解析树,进而高效解析其中的内容beautifulsoup4库将数据从HTML和XML文件中解析出来,它能够提供一种符合习惯的方法去遍历搜索和修改解析树,将专业的Web页面格式解析部分封装成函数,提供了若干有用且便捷的处理函数
数据可视化
matplotib
matplotlib是提供数据绘图功能的第三方库,主要进行二维图表数据展示,广泛用于科学计算的数据可视化。使用这个库可以利用Python程序绘制超过100种数据可视化效果。
TVTK
TVTK库在标准的VTK库之上用Traits库进行封装的Python第三方库。视觉工具函数库(VTK)是一个开源、跨平台、支持平行处理的图形应用函数库,它是专业可编程的三维可视化工具。TVTK在Python生态系统中被等同于VTK。mayavi基于VTK开发,完全用Python编写,提供了一个更为方便实用的可视化软件,可以简洁地嵌入到用户编写的Python程序中,或者直接使用其面向脚本的API快速绘制三维可视化图形。值得注意的是,mayavi也被称为mayavi2。n mayavi库在Windows平台上暂时不能方便的使用pip命令安装,建议使用文件安装,请下载mayavi对应版本文件,然后在本地安装
用户图形界面
pyqt5
pyqt5是Qt5应用框架的Python第三方库,它有超过620个类和近6000个函数和方法。它是Python中最为成熟的商业级GUI第三方库。这个库是Python语言当前最好的GUI第三方库,它可以在Windows、Linux和Mac OS X等操作系统上跨平台使用pyqt5采用“信号-槽”机制将事件和对应的处理程序进行绑定。pyqt5窗体有很多内置信号,也可以自定义信号
wxpython
wxPython是Python语言的一套优秀的GUI图形库,它是跨平台GUI库wxWidgets的Python封装,可以使Python程序员能够轻松地创建健壮可靠、功能强大的图形用户界面的程序pygtk是基于GTK+的Python语言封装,它提供了各式的可视元素和功能,能够轻松创建具有图形用户界面的程序。pygtk具有跨平台性,利用它编写的代码能够不加修改地稳定运行在各操作系统中,如Windows、MacOS、Linux等
机械学习
Scikit-learn
Scikit-learn是一个简单且高效的数据挖掘和数据分析工具,它基于NumPy、SciPy和matplotlib构建。Scikit�learn的基本功能主要包括6个部分:分类,回归,聚类,数据降维,模型选择和数据预处理。Scikit-learn也被称为sklearn
Tensorflow
TensorFlow是谷歌公司基于DistBelief进行研发的第二代人工智能学习系统,也是用来支撑著名的AlphaGo系统的后台框架。Tensor(张量)指N维数组,Flow(流)指基于数据流图的计算,TensorFlow描述张量从流图的一端流动到另一端的计算过程。
Theano
Theano为执行深度学习中大规模神经网络算法的运算而设计,擅长处理多维数组。Theano开发始于2007,可以理解它是一个运算数学表达式的编译器,并可以高效运行在GPU或CPU上。Theano是一个偏向底层开发的库,更像一个研究平台而非单纯的深度学习库
web开发方向
Django
Django是Python生态中最流行的开源Web应用框架。Django采用模型、模板和视图的编写模式,称为MTV模式。Django中提供了开发网站经常用到的模块,Django的开发理念是DRY(Don't Repeat Yourself),用于鼓励快速开发,进而减少程序员可以建立一个高性能Web应用所花费的时间和精力,形成一种一站式解决方案
Pyramid
Pyramid是一个通用、开源的Python Web应用程序开发# 框架。它主要的目的是让Python开发者更简单的创建# Web应用,相比Django,Pyramid是一个相对小巧、快速、灵活的开源Python Web框架。Pyramid仍然面向较大规模的Web应用,但它更关注灵活性,开发者可以灵# 活选择所使用的数据库、模板风格、URL结构等内容
Flask
Flask是轻量级Web应用框架,相比Django和Pyramid,# 它也被称为微框架。使用Flask开发Web应用十分方便,# 甚至几行代码即可建立一个小型网站。Flask核心十分简# 单,并不直接包含诸如数据库访问等的抽象访问层,而# 是通过扩展模块形式来支持
游戏开发
Pygame
Pygame是在SDL库基础上进行封装的、面向游戏开发入门的Python第三方库,除了制作游戏外,还用于制作多媒体应用程序。其中,SDL(Simple DirectMedia Layer)是开源、跨平台的多媒体开发库,通过OpenGL和Direct3D底层函数提供对音频、键盘、鼠标和图形硬件的简洁访问。Pygame是一个游戏开发框架,提供了大量与游戏相关的底层逻辑和功能支持,非常适合作为入门库理解并实践游戏开发
Panda3D
Panda3D是一个开源、跨平台的3D渲染和游戏开发库,简答说,它是一个3D游戏引擎,由迪士尼和卡耐基梅隆# 大学娱乐技术中心共同进行开发。Panda3D支持Python和C++两种语言,但对Python支持更全面。Panda3D支持很多当代先进游戏引擎所支持的特性:法线贴图、光泽贴图、HDR、卡通渲染和线框渲染等
cocos2d
cocos2d是一个构建2D游戏和图形界面交互式应用的框架,它包括C++、JavaScript、Swift、Python等多个版本。cocos2d基于OpenGL进行图形渲染,能够利用GPU进行加速。cocos2d引擎采用树形结构来管理游戏对象,一个游戏划分为不同场景,一个场景又分为不同层,每个层处理并响应用户事件
其他
PIL
PIL库是Python语言在图像处理方面的重要第三方库,支持图像存储、显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放、剪裁、叠加以及向图像添加线条、图像和文字等操作。 PIL库主要可以完成图像归档和图像处理两方面功能需求:图像归档:对图像进行批处理、生成图像预览等;图像处理:图像基本处理、像素处理、颜色处理等
SymPy
SymPy是一个支持符号计算的Python第三方库,它是一个全功能的计算机代数系统。SymPy代码简洁、易于理解,支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散数学、几何学、概率与统计、物理学等领域计算和应用
NLTK
NLTK是一个非常重要的自然语言处理Python第三方库,它支持多种语言,尤其对中文支持良好。NLTK可以进行语料处理、文本统计、内容理解、情感分析等多种应用,具备非常可靠的应用价值
WeRoBot
WeRoBot 是一个微信公众号开发框架,也称为的微信机器人框架。WeRoBot可以解析微信服务器发来的消息,并将消息转换成成Message或者Event类型
MyQR
MyQR是一个能够产生基本二维码、艺术二维码和动态效果二维码的Python第三方库。
返回的每一行都是一个列表 每一个元素是,号分割的
ls = []
for line in fi:
ls.append(line.split(","))
fi.close()
#返回的是所有内容的字符串
txt = fi.read()
#返回的每一行都是一个列表 但每一元素是一个字符
txt = fi.readlines()
eval() 返回的是list类型
list(列表)的以下两个操作数据是整体的
append list类型操作
','.join list类型操作
str字符串的append join操作 数据是单独的字符
replace是str的操作
lists = list(item.items())
lists.sort(key = lambda s:s[1],reverse = True)
自己总结的,欢迎阅读。