python学习笔记(三)—— 正则 threading multiprocessing tkinter

目录

      • 正则表达
      • 多线程 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

你可能感兴趣的:(学习笔记)