python學習筆記(三)—— 正則 threading multiprocessing tkinter

Python 基礎教程 (莫煩 Python 教程)
Threading 學會多線程 (莫煩 Python 教程)
Multiprocessing 讓你的多核計算機發揮真正潛力 (莫煩 Python 教程)
Tkinter 做簡單的窗口視窗 (GUI 莫煩 Python 教程)
《零基礎入門學習Python》(小甲魚) P65-78

zip 把多個元素對應,用list顯示
map 把function與參數對應,用list顯示
lambda 簡單定義,例如func = lambda x,y:x+y
copy.copy() 淺複製,變量id不同,但元素可能相同
deepcopy 深複製,任何都不相同
set 去除重合的元素

正則表達

import re
print(re.search(r"a[0-9a-zA-Z]c", "XXXXXXX"))  #r表示不把字符串轉義處理

\d 所有數字 \D不是數字
\s 所有空白符 \S 不是空白符
\w [a-zA-Z0-9] \W 不是\w
\b 空白字符,只在開頭或結尾 \B 空白字符,不在開頭或結尾
\ 轉義
( )\數字 ()內容再次重複
^ 開頭 $ 結尾
|
. 任何字符 (除了 \n) ? 前面的字符可有可無
* 重複零次或多次
+ 重複一次或多次
{n,m} 重複 n 至 m 次
{n} 重複 n 次
[ ] 字符類
group 分組
findall 所有匹配,返回列表
replace 找到匹配並替換
split 分裂
compile 編譯

多線程 threading

在一個腳本中加速運行
import threading
threading.active_count() 獲取已激活的線程數
threading.enumerate() 查看所有線程信息
threading.current_thread() 查看正在運行的線程
thread = threading.Thread(target=XXXX) 定義新的線程
thread.start() 讓線程開始工作
thread.join() 控制多個線程的執行順序

from queue import Queue 儲存進程結果
GIL 不一定有效率,本質是線程切換
lock=threading.Lock()
lock.acquire()
lock.release()

多進程 multiprocessing

利用多核CPU加速運行
import multiprocessing as mp
p1 = mp.Process(target=XXX,args=(XX,XX)) 定義新的進程
mp.start() mp.join()
mp.Queue()

進程池 pool
pool = mp.Pool() 池子對應一個函數
res = pool.map(job, range(10)) 返回多個結果
apply_async() 只能放入一組參數,並返回一個結果

共享內存

l = mp.Lock() 定義一個進程鎖。需要作爲參數傳入。
l.acquire()
l.release()

窗口視窗 tkinter

import tkinter as tk

window = tk.Tk()
window.title('my window')
window.geometry('200x100')

theLabel = tk.Label(window, text="this is label")  #單行文本
theLabel.pack()    #自動調節尺寸位置

window.mainloop()
變量

StringVar
IntVar

組件

Frame
LabelFrame
Label textvariable .config
Button command=函數
Checkbutton 多選框
Radiobutton 單選框
Listbox 很多選項 listvariable .insert .delete
Scrollbar
Scale
Entry 輸入框 show='*' .get
Text 多行文本 .insert
Canvas 畫圖 .create_ .move
PhotoImage
Menu add_
Menubutton
Message
Spinbox
PanedWindow
Toplevel

佈局管理器

pack 添加順序 side
grid 行/列 row column padx pady ipadx ipady
place(x=XX,y=YY)

標準對話框

messagebox 彈窗 .showinfo .showwarning .showerror askquestion askyesno asktrycancel askokcancel
filedialog
colorchooser

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