Python二級

Python二級

我自己總結的資料。
參考全國計算機等級考試二級教程 Python語言程序設計 (2018年版)
需要資料和題的可以找我。

繪製一個五角紅星圖形
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類型,即TrueFalse
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})的結果是<class 'dict'>
窗體函數
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構建。Scikitlearn的基本功能主要包括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)

自己總結的,歡迎閱讀。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章