国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

不足200行代碼,我用 python 寫了一個(gè)上課點(diǎn)名系統(tǒng)!

共 30339字,需瀏覽 61分鐘

 ·

2022-01-21 01:38

關(guān)注"Python學(xué)習(xí)與數(shù)據(jù)挖掘",

設(shè)為“置頂或星標(biāo)”,第一時(shí)間送達(dá)干貨

資料專欄

李航老師《統(tǒng)計(jì)學(xué)習(xí)方法(第二版)》課件&代碼

【視頻+PPT】李宏毅老師機(jī)器學(xué)習(xí)40講

大家好,今天在地鐵上刷到了一個(gè)這樣的短視頻,我尋思是不是也可以寫一個(gè)類似的上課點(diǎn)名程序。年底了,當(dāng)然這個(gè)程序也可以用來抽獎。

下面我們開始實(shí)操吧!喜歡記得點(diǎn)贊、收藏、關(guān)注。

準(zhǔn)備工作

1、Tkinter

Tkinter 是 python 內(nèi)置的 TK GUI 工具集。TK 是 Tcl 語言的原生 GUI 庫。作為 python 的圖形設(shè)計(jì)工具,它所使用的 Tcl 語言環(huán)境已經(jīng)完全嵌入到了 python 解釋器中。

2、PIL

PIL 庫是Python語言的第三方庫,需要通過pip工具安裝。安裝PIL庫的方法如下,需要注意,安裝庫的名字是pillow。

PIL庫支持圖像儲存、顯示和處理,他能夠處理幾乎所有圖片格式,可以完成對圖像的縮放、剪裁、疊加以及向圖像添加線條、圖像和文字等操作。

使用PIL中的Image,ImageTk處理、引入一張圖片,可以使用下面代碼安裝一下。

pip?install?pillow

預(yù)覽

1、啟動

雙擊打開后,進(jìn)入軟件主界面,所有功能一目了然。程序會自動識別軟件目錄下的names.txt,將里面的名字導(dǎo)入。

2、開始點(diǎn)名-順序點(diǎn)名

選擇順序點(diǎn)名后,點(diǎn)擊開始,屏幕上就開始滾動出現(xiàn)人名,人名出現(xiàn)的概率是相同的,點(diǎn)擊停止,人名就停止?jié)L動,點(diǎn)名結(jié)束。

3、開始點(diǎn)名-隨機(jī)點(diǎn)名

點(diǎn)擊隨機(jī)點(diǎn)名,程序就會進(jìn)行隨機(jī)點(diǎn)名,人名出現(xiàn)的概率是隨機(jī)的。

4、手動加載人名單

可以自己手動選擇人名單,前提是人名單格式為txt,且每個(gè)名字占一行。

5、開始點(diǎn)名-順序點(diǎn)名-Pyqt5版本

用 Pyqt5 也寫了一個(gè)版本,實(shí)現(xiàn)邏輯與TK版本相同,界面可能更好看了一些,但是文件大了許多,大家可以在后面總結(jié)部分自取。

思路

1、整體實(shí)現(xiàn)思路
2、點(diǎn)名實(shí)現(xiàn)思路

源代碼

point_names-GUI.py(主程序GUI)

from?base64?import?b64decode

from?PIL?import?Image,ImageTk

from?tkinter?import?messagebox

from?tkinter.filedialog?import?askopenfilename

imgs=['./point_name.png']

????????self.running_flag=False?#開始標(biāo)志

????????self.time_span=0.05?#名字顯示間隔

????????self.root.title('Point_name-V1.0')

????????left?=?(self.root.winfo_screenwidth()?-?width)?/?2

????????top?=?(self.root.winfo_screenheight()?-?height)?/?2

????????self.root.geometry("%dx%d+%d+%d"?%?(width,?height,?left,?top))

????????self.root.resizable(0,0)

????????self.create_widget()

????????self.set_widget()

????????self.place_widget()

????????self.root.mainloop()

????def?create_widget(self):

????????self.label_show_name_var=StringVar()

????????self.label_show_name=ttk.Label(self.root,textvariable=self.label_show_name_var,font=('Arial',?100,"bold"),foreground?=?'#1E90FF')

????????self.btn_start=ttk.Button(self.root,text="開始",)

????????self.btn_load_names=ttk.Button(self.root,text="手動加載人名單",)

????????self.lf1=ttk.LabelFrame(self.root,text="點(diǎn)名方式")

????????self.radioBtn_var=IntVar()

????????self.radioBtn_var.set(1)

????????self.radioBtn_sequence=ttk.Radiobutton(self.lf1,text="順序點(diǎn)名",variable=self.radioBtn_var,?value=1)

????????self.radioBtn_random=ttk.Radiobutton(self.lf1,text="隨機(jī)點(diǎn)名",variable=self.radioBtn_var,?value=2)

????????self.label_show_name_num=ttk.Label(self.root,font=('Arial',?20),foreground?=?'#FF7F50')

????????paned?=?PanedWindow(self.root)

????????img_=b'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'

????????the_img?=?b64decode(img_)#將圖片硬編碼到GUI

????????paned.image?=?ImageTk.PhotoImage(data=the_img)

????????self._img?=?Label(self.root,?image=paned.image,background='black')

????def?set_widget(self):

????????default_name_="會是誰?"

????????self.label_show_name_var.set(default_name_)

????????self.label_show_name_adjust(default_name_)

????????self.btn_start.config(command=lambda?:self.thread_it(self.start_point_name))

????????self.btn_load_names.config(command=self.load_names)

????????init_names=self.load_names_txt("./names.txt")

????????self.root.protocol('WM_DELETE_WINDOW',self.quit_window)

????????self.root.bind('',self.quit_window)

????????????self.default_names=init_names???#1.文件存在但是無內(nèi)容。2.文件不存在

????????????self.label_show_name_num.config(text=f"一共加載了{(lán)len(self.default_names)}個(gè)姓名")

????????????self.btn_start.config(state=DISABLED)

????????????self.label_show_name_num.config(text=f"請先手動導(dǎo)入人名單!")

????def?place_widget(self):

????????self.lf1.place(x=300,y=160,width=250,height=50)

????????self.radioBtn_sequence.place(x=20,y=0)

????????self.radioBtn_random.place(x=150,y=0)

????????self.btn_start.place(x=300,y=220,width=100,height=30)

????????self.btn_load_names.place(x=450,y=220,width=100,height=30)

????????self._img.place(x=90,?y=165,?height=120,?width=180)

????????self.label_show_name_num.place(x=300,y=260)

????def?label_show_name_adjust(self,the_name):

????????if?len?(the_name)==1:

????????????self.label_show_name.place(x=280,?y=10)

????????elif?len(the_name)?==?2:

????????????self.label_show_name.place(x=180,?y=10)

????????elif?len(the_name)?==?3:

????????????self.label_show_name.place(x=120,?y=10)

????????elif?len(the_name)?==?4:

????????????self.label_show_name.place(x=80,?y=10)

????????????self.label_show_name.place(x=0,?y=10)

????def?start_point_name(self):

????????if?len(self.default_names)==1:

????????????messagebox.showinfo("提示",'人名單就一個(gè)人,不用選了!')

????????????self.label_show_name_var.set(self.default_names[0])

????????????self.label_show_name_adjust(self.default_names[0])

????????if?self.btn_start["text"]=="開始":

????????????self.btn_load_names.config(state=DISABLED)

????????????self.running_flag=True

????????????if?isinstance(self.default_names,list):

????????????????self.btn_start.config(text="就你了")

????????????????if?self.radioBtn_var.get()==1:

????????????????????mode="sequence"

????????????????elif?self.radioBtn_var.get()==2:

????????????????????mode="random"

????????????????self.thread_it(self.point_name_begin(mode))

????????????????messagebox.showwarning("警告","請先導(dǎo)入人名單!")

????????????self.running_flag=False

????????????self.btn_load_names.config(state=NORMAL)

????????????self.btn_start.config(text="開始")

????def?point_name_begin(self,mode):

????????if?mode?==?"sequence":

????????????if?self.running_flag:

????????????????self.always_ergodic()

????????elif?mode=="random":

????????????????????if?self.running_flag:

????????????????????????random_choice_name=random.choice(self.default_names)

????????????????????????self.label_show_name_var.set(random_choice_name)

????????????????????????self.label_show_name_adjust(random_choice_name)

????????????????????????time.sleep(self.time_span)

????????????????????else:

????????????????????????break

????def?always_ergodic(self):

????????一直遍歷此列表,使用死循環(huán)會造成線程阻塞

????????for?i?in?self.default_names:

????????????if?self.running_flag:

????????????????self.label_show_name_var.set(i)

????????????????self.label_show_name_adjust(i)

????????????????time.sleep(self.time_span)

????????????????if?i==self.default_names[-1]:

????????????????????self.always_ergodic()

????def?load_names(self):

????????filename?=?askopenfilename(

????????????????filetypes?=?[('文本文件',?'.TXT'),?],

????????????????title?=?"選擇一個(gè)文本文件",

????????????initialdir="./"

????????????names=self.load_names_txt(filename)

????????????????self.default_names=names

????????????????no_Chinese_name_num=len([n?for?n?in?names?if?not?self.load_name_check(n)])

????????????????if?no_Chinese_name_num==0:

????????????????????messagebox.showwarning("請注意",f'導(dǎo)入名單有{no_Chinese_name_num}個(gè)不是中文名字')

????????????????self.label_show_name_num.config(text=f"一共加載了{(lán)len(self.default_names)}個(gè)姓名")

????????????????default_name_?=?"會是誰?"

????????????????self.label_show_name_var.set(default_name_)

????????????????self.label_show_name_adjust(default_name_)

????????????????self.btn_start.config(state=NORMAL)

????????????????messagebox.showwarning("警告","導(dǎo)入失敗,請檢查!")

????def?load_names_txt(self,txt_file):

????????????with?open(txt_file,'r',encoding="utf-8")as?f:

????????????????names=[name.strip()?for?name?in?f.readlines()]

????????????????if?len(names)==0:

????????????????????return?False

????????????????????return?names

????def?load_name_check(self,name):

????????regex?=?r'[\u4e00-\u9fa5]+'

????????if?re.match(regex,name):

????def?thread_it(self,func,*args):

????????t=threading.Thread(target=func,args=args)

????????t.setDaemon(True)

????def?quit_window(self,*args):

????????ret=messagebox.askyesno('退出','確定要退出?')

????????????self.root.destroy()

if?__name__?==?'__main__':

總結(jié)

本次使用 Tkinter 開發(fā)了一款上課點(diǎn)名程序,此程序可以用于點(diǎn)名、抽獎…代碼不到200行,程序簡單又實(shí)用,主要有以下六個(gè)亮點(diǎn):

1.兩種模式:順序點(diǎn)名、隨機(jī)點(diǎn)名

2.自動識別人名單

3.支持手動導(dǎo)入人名單

4.人名單導(dǎo)入校驗(yàn)

5.人名顯示位置自動矯正

6.最多顯示五個(gè)大字

長按或掃描下方二維碼,后臺回復(fù):加群,即可申請入群。一定要備注:來源+研究方向+學(xué)校/公司,否則不拉入群中,見諒!

長按三秒,進(jìn)入后臺


推薦閱讀

瀏覽 36
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 91在线一区| 97爱| 国产激情视频在线免费观看| 成人久久大香蕉| 免费观看成人片| 大香蕉草久| av无码免费观看| 一级A黄色片| 一区二区三区免费观看| 1024手机在线视频| 国产AV无码专区| 一区二区三区电影| 欧美老妇性猛交| 操美女一区二区| 日批网站在线| 亚洲欧洲综合| 一区视频| 操操操操操操操操逼| 先锋影音成人资源| 性一区| 国产精品成人免费精品自在线观看 | 久久久精品亚洲| 日韩一级一级| 久艹在线观看视频| 91精品国产一区二区| 五月婷在线| 就去se超碰| 日日摸日日添日日躁AV| 毛片中文字幕| 一区二线视频| 久爱视频| 青娱乐在线视频精品| 欧美不卡在线| 麻豆精品一区二区三区| 国色天香网站| 免费无码高清视频| 人妻无码在线观看| 学生妹毛片视频| 丝瓜视频| 亚洲有码人妻| 嫩草91| 国产AV一区二区三区四区| 亚洲精品成人av| 国产乱伦内射视频| 人人摸人人干人人操| 翔田千里与黑人50分钟| 影音先锋av在线资源| 加勒比无码| 国产和日韩中文字幕| 狼友视频免费在线观看| 成人毛片在线| av大片在线观看| 久久国产一区二区三区| 国产精品一区二区视频| aaa国产精品| 亚洲国产成人91PORN| 久久狠| 免费人成视频在线播放| 一区二区高清视频| 天天干天天摸| 岛国电影av| 黄页网站免费在线观看| 精品乱子伦一区二区三区下载 | 亚洲国产精品午夜福利| 亚洲综合区| 久久97人妻AⅤ无码一区| 日韩成人网址| 四库影库| 黄色片视频在线观看| 性爱AV在线观看| 粉嫩99精品99久久久久| 江苏妇搡BBBB搡BBBB| 91麻豆福利在线| 日本白浆| 99热国产精品| 黑人亚洲娇小videos∞| 亚洲一二三四| 豆花视频无码| 国产又爽又黄免费视频免费| 国产资源网| 成人免看一级a一片A片| 91国产福利| 五月婷婷五月| 欧美日韩逼| 日韩无码123| H片在线观看| 三浦恵子一级婬片A片| 精品国产乱子伦一区二区三区最新章| 欧美性综合网| 伊人91| 91精品久久久久久综合五月天 | 色猫AV| 丁香六月久久| 99久久九九| 色噜噜人妻av中文字幕| 91丨露脸丨熟女| 风流老熟女一区二区三区| 国产精品婷婷| 永久m3u8在线观看| 亚洲天堂自拍| 草草浮力院| 成人在线观看AV| 北京熟妇搡BBBB搡BBBB| 永井玛丽亚av无码中出流出| 99热精品国产| 青青草成人免费在线视频| 国产精品午夜福利视频| 欧美性BBwBBwBBwHD| 欧美香蕉视频| 人人人妻人人人操| 亚洲欧美成人网| 99精品国产热久久91色欲| 欧美激情综合色综合啪啪五月| 日本成人一区二区三区| 特级黄色片| 亚洲午夜电影| aaa少妇| 天天操天天操天天| 一级片三级片| 成人三级AV| 日韩精品毛片| 尤物在线播放| 亚州成人视频| 国产在线观看mv免费全集电视剧大全 | 黄色A片在线观看| 玖玖色资源| 免费av大全| 成人高清无码在线| 亚洲国产精品成人va在线观看 | 欧美乱伦内射| 日韩一级黄色片| 亚洲色偷精品一区二区三区| 澳门午夜黄色在线| 日韩在线电影| 欧美成人AA| 大香蕉在线免| 国产香蕉在线| 国产三级片91| 丁香五月少妇| 欧美性爱小说网| 欧美第一视频| 久久肏| 婷婷三级片| 久久黄片视频| 亚洲日韩在线视频| 日韩有码在线观看| 影音先锋蜜桃| 日本少妇视频| 亚洲国产天堂| 人人妻日日摸狠狠躁视频| 好想被c秘好爽n网址| 88AV在线播放| 欧美老熟妇BBBBB搡BBB| 国产精品美女| 亚洲一级AV| 国产污视频在线观看| 日韩视频免费观看高清完整版在线观| 欧美日韩免费在线| 人人操天天| 操逼天堂| 亚洲中文字幕在线看| av天堂一区| www.天天干| 日本伊人大香蕉| 国产一级婬乱A片| 久久毛片人妻| 俺也去在线视频| www.五月丁香| 粉嫩99国产精品久久久久久人妻| 久久777| 中文字幕人妻互换av久久| 超碰极品| 福利一区二区视频网| 亚洲电影av| 99久久久无码国产精品性波多| 日韩视频免费看| 欧美成人精品AAA| 最近中文字幕免费mv第一季歌词大全 | 日本韩国无码视频| 一本色道久久88亚洲精品综合| 欧美视频在线观看| 亚洲电影av| 91久久人澡人妻人人做人人爽97| 免费v在线观看| 国产精品一麻了麻了| 青青青视频在线| gogogo日本免费观看高清电视剧的注意| 成人亚洲精品一区二区三区| 精品福利在线观看| 日韩高清av| AV色图| 黄色av网站在线观看| 亚洲天堂天天| 亚洲天堂偷拍| 亚洲免费中文字幕| 国产经典午夜福利视频合集| av网站免费在线观看| 在线成人一区二区| 91亚洲视频在线观看| 日韩V| 色综合婷婷| 日韩极品在线观看| 精品AV无码一区二区三区| 大鸡巴在线| 成人三级电影在线观看| 香蕉国产2023| 欧美群交videotv群交| 国产麻豆免费| 日韩乱伦毛片| 国产激情无码| 日韩A片在线观看| 91精品视频网站| 国产操逼免费视频| 99re视频在线播放| 伊人综合色| 久久香蕉综合在线| 日韩黄色大片| 日本一区二区三区在线视频| 777无码| 蜜桃视频在线观看视频| 欧美性爱XXXX黑人XYX性爽| 高清无码网站在线观看| 久久午夜无码鲁丝午夜精品| 丝袜诱惑AV| 大香蕉精品在线| 国产91无码精品秘入口新欢| 国产精品国产精品国产专区不| 中文资源在线a中文| 婷婷成人综合网| 一级国产片| 一级毛AA片| 欧美激情网站| 日韩精品视频在线| 少妇无码视频| 俺来也俺也啪www色| 国产一级a毛一级a毛视频在线网站 | 上海熟搡BBB搡BBBB| 五月丁香网站| 麻豆中文字幕| 四虎国产| 日韩一级黄色| 在线免费看毛片| 91探花秘在线播放偷拍| 不卡在线| 视色视频在线观看18| 麻豆熟女| 精品女人| 人人看人人摸人人草| 一区电影网| 久久久高清无码视频| 91精品国产综合久久久久久久 | 婷婷五月天中文字幕| 国产内射在线观看| 黄色A级毛片| www.黄色在线观看| 99久久精品国产一区色| 日韩无码播放| 人人看人人射| 亚洲AV成人精品日韩在线播放| 日韩中文字幕在线观看视频| A片免费在线| 3p绿帽黑人看自己老婆| 国产午夜福利在线| 五月在线| 国产成人精品久久久| 翔田千里無碼破解| 亚洲人妻无码视频| 亚洲久久久久久| 91天堂网| 嫩小槡BBBB槡BBBB槡漫画| 大香蕉手机在线视频| 不卡无码在线观看| 性爱视频免费网站| 一级片在线观看视频| 日韩黄视频| 亚洲欧洲视频| 综合+夜夜| 欧美激情网| 五月天青青草超碰免费公开在线观看 | 天天爽夜夜爽夜夜爽| AV无码网| 97精品人妻一区二区三区香蕉| 乱子伦国产精品视频一级毛| 男人的天堂色婷婷| 久久免费视屏| 日本一区二区三区在线视频| 99人妻视频| 秋霞福利| 国产一区二区三区在线| 久久亚洲福利视频| 高清无码中文字| 奇米狠狠777| 亚洲AV无码乱码国产精品黑人 | 一道本视频在线免费观看| 国产尤物在线观看| 亚洲精品国产精品国自产| 日本在线黄色视频| 日韩欧美精品在线观看| 久草福利在线观看| 约操少妇| 起碰视频| 国产丰满乱子伦无码| 婷婷三级片| 亚洲无码视频一区二区| 黄色小视频在线观看| 成人精品无码| 日产久久久| 熟女伦乱| 天码人妻一区二区三区在线看| 欧美色色网站| 大香蕉毛片| 大香蕉免费中文| 99久久9| 高潮免费视频| 无码AV大香线蕉伊人| 福利视频一区| 国产逼逼| 久色天堂| 岛国无码破解AV在线播放| 韩日在线| 91色视频在线观看| 综合合一品道| 一级黄色视频免费看| 一级A片| 精品国产免费观看久久久_久久天天| 一级婬片A片AAAAA毛片| AV福利在线观看| 欧美日韩在线一区| 欧美丝袜脚交xxxxBH| 国产精品一区一区三区| 亚洲精品秘一区二区三区在线观看 | 91探花秘入囗| 国产夫妻自拍AV| 广东BBW搡BBBB搡| 国产叼嘿视频| 国产视频a| 91日日夜夜| 黄网站在线观看| 日韩少妇AV| 青娱乐成人在线| 亚洲色图综合| 国产精品51麻豆cm传媒| 日日操日日摸| 老熟女露脸25分钟91秒| 亚洲乱码一区| 久色视频在线| 79色色| 一区二区Av| 韩国三级片在线| 激情五月天网| 国产熟女一区二区三区五月婷| 一级a一级a免费观看免免黄‘/| 黑巨茎大战欧美白妞小说| 免费黄色AV| 久久久无码AV| 又大又黄又爽| 亚洲黄色在线观看| 人人弄| 妻子互换被高潮了三次| 最新福利视频| 日韩亚洲精品中文字幕| 亚洲中文字幕2025| 夜夜爽日日爽| 国产成人AV免费无码| 成人在线视频免费| 欧美日韩中文在线观看| 日本欧美一级| 日韩无码一区二区三区| 精品国产区一区二| AV无码免费观看| 少妇搡BBBB搡BBB搡毛片| 亚洲电影AV| www.亚洲天堂| 搡BBB搡BBBB搡BBBB'| 中文在线a√在线8| 亚洲国产剧情| 日韩成人网站在线观看| 激情婷婷| 日本亲子乱婬一级A片| 99久久婷婷国产综合精品电影 | 俺去也www俺去也com| 日韩AV在线电影| 精品秘一区性综合三区| 伊人久久免费| 91丨PORNY丨在线中文| 色妞视频| 人人妻人人澡人人爽久久con | 婷婷五月亚洲精品AAA片在| 免费69视频| 996久久| 91国产在线播放| 亚洲欧美在线观看| 久久er99| 久久高清免费视频| 国产做爰XXXⅩ久久久骚妇| 日本黄色视频免费观看| 欧美www| 日韩亚洲天堂| 一区二区三区精品婷婷| 免费欧美性爱| 日韩A人人| 开心老牛熟| 久久久国产探花视频| 久久精品国产亚洲AV成人婷婷| 中文字幕亚洲视频| av无码精品一区| 国产69精品久久久久久久久久久久 | 在线观看老湿视频福利| 91成人做爰A片| 国产精品天天狠天天看| 久久久久久久国产| 在线观看的AV| 欧美怡春院| 91AV视频在线| 狼人香蕉在线视频| 伊人看片| 综合激情五月婷婷| 成人在线免费网站| 青青操原| 大香蕉官网| 亚洲免费视频网站| 超碰成人免费| 天天干91| 黄色伊人| 天天夜夜操| 91迷奸| 日韩大香蕉在线| 精品伊人大香蕉| 67194熟女| 思思热免费视频| 日韩欧美黄| 特级西西人体444WWw高清大胆| 欧美一卡| 伊人综合久久| 亚洲网站免费| 午夜免费AV| 黄色片毛片| 激情无码在线观看| 亚洲操逼网| 日韩欧美人妻无码精品| 俺去操| 操逼在线播放| 翔田千里无码A片| 女色综合| 久久AV网站| 国产精品伦理| 国产A级片| 怡红院爽妇网| 亚洲成人AV在线| 国产精品三| 午夜爱爱免费视频| 日本操逼网| 国内精品久久久久| 亚洲精品在线视频观看| 日本最新免费二区| 欧美狠狠操| 伊人综合大香蕉| 高清无码高潮| 人妻日韩精品中文字幕| 毛片小说| 五月黄色电影| 精品交换一区二区三区无码| 午夜无码视频| 伊人影院在线视频| 国产成人午夜高潮毛片| 波多野结衣高潮| 99久久综合| 噜噜影院| 无码人妻精品一区二区三区温州| 久热大香蕉| 午夜视频在线播放| 丰满人妻一区二区三区四区54| 黄色网页免费观看| 91九色丨国产丨爆乳| 欧美一二| 欧美在线无码| 高清日韩欧美| 国产区在线观看| 黄色小视频在线免费观看| 天天日,天天干,天天操| 天天色免费视频| 丰满少妇在线观看网站| 草草浮力院| 网站av| 高清无码在线免费观看| 91九色视频| 成人网站大香蕉| 插插插插网| 欧美综合色| 婷婷精品国产一区二区三区日韩| 一区二区免费在线观看| 天天综合干| 69人妻人人澡人人爽久久| 国产乱子伦一区二区三区视频| 无码不卡视频在线观看| 色婷婷基地| 五月天狠狠干| 日韩在线观看视频网站| gogogo日本免费观看高清电视剧的注意 | 美女做爱在线观看| 国产成人无码毛片| 亚洲国际中文字幕在线| 九九热免费视频| 麻豆视频免费观看| 久久精品视频在线免费观看| 91探花足浴店少妇在线| 精品欧美一区二区三区久久久 | A片免费在线观看| 精品自拍偷拍| 成熟的国模冰莲[2]| 麻豆91精品91久久久停运原因 | 成人午夜A片| 无码免费一区二区| 内射视频在线免费观看| 天堂无码高清| 日韩人妻精品无码久久边| 欧美性猛交XXXX乱大交蜜桃| 色综合久久久无码中文字幕999| 欧美XX888做受| 大秀91视频| 小處女末发育嫩苞AV| 成人网站免费视频| 潮喷AV| 亚洲中文无码第一页| 91成人视频18| 亚欧成人网站| 女生自慰网站免费| 中文在线最新版天堂8| 黄色片免费| 四虎精品成人无码A片| 婷婷操逼网| 无码国产精品一区二区性色AV| 底流量AV电影在线| 99无码视频| 探花视频在线观看| 少妇熟女视频| 五月天久久久| 亚洲黄色免费电影| 欧美一区免费| 爱爱欧美| 亚洲中文字幕电影| 亚洲操b| Japanese在线观看| 日韩色情网| 网站av| 成人片成人网久久蜜桃臀| 熟妇槡BBBB槡BBBB| 日本免费不卡| 99re在线观看观看这里只有精品 | 国产人体视频| 做爱A片| 懂色成人Av| 国产乱妇无码毛片A片在线看下载 日韩电影免费在线观看中文字幕 欧美性爱中文字幕 | 激情五月婷婷色| 免费在线观看内射| 亚洲a级毛片| 日韩中文字幕在线播放| 国产特级毛片| 日韩有码在线观看| 亚洲超碰在线观看| 九九热99视频| 欧美久久一区二区三区四区视频| 黄色成人在线观看| 777久久久| 做爰视频毛片蜜桃| 一二三久久| 精品九九九九九| 亚洲久久视频| 亚洲精品一区二区三| 亚洲字幕在线观看| 影音先锋av成人电影| 色综合九九| 久久视频免费观看| 免费A片在线播放| 超碰免费99| 丁香花免费高清视频小说完整| 欧美亚洲色色网视频| 中文字幕亚洲有码| 91精品人妻一区二| 一区二区水蜜桃| 久久人人超碰| 国内无码自拍| 高清无码操逼视频| 波多野结衣成人网站| 91视频一区| 中文av字幕| 北条麻妃99| 国产三级三级三级| 亚洲成人免费在线| 日韩日批视频| 91av导航| 国产免费成人在线观看| 日本精品电影| 婷婷五月天激情网| 黄色A片网站| 天堂成人在线| 国产视频福利在线| 一级a免一级a做免费线看内裤的注意事项 | 国产乱码一区二区三区的区别| 久久AA| 亚洲无码少妇| 色就是亚洲| 人人操人人操人人操人人操人人操| 无码高清视频| 91成人影片| 国产91白丝在一线播放| 黄色AV免费看| 久久XX| 国产亚洲91| 大学生一级特黄大片| 亚洲丝袜av| 2020无码| 嫩BBB槡BBBB槡BBBB| 苍井空一区二区| 亚欧洲精品在线视频免费观看| 色情一级AA片免费观看| 黄色成人在线观看视频| 亚洲综合人妻| 国产美女被爽到高潮免费A片软件 国产无遮挡又黄又爽又色视频软件 | 免费一级a片| 男女日比视频| 久久这里只有精品99| 国产Aⅴ| 欧美va在线| 国产手机精品视频| 婷婷伊人中文字幕| 日本色区| 四虎www| 色婷婷综合视频| 国产a毛一级,a毛一级| 国产精品无码久久久久成人app | 亚洲精品天堂无码AV片| 91av在线播放| 手机AV在线| 亚洲成人性爱| 国产高清无码免费| 免费在线观看毛片| 国产网站在线| 欧美性爱-熊猫成人网| 免费乱伦视频| 黄色视频网站在线免费观看| 亚洲国产成人91PORN| 亚洲最大福利视频| 山西真实国产乱子伦| 免费成人三级片| 超碰天堂| 久久大鸡| 东方AV在| 无码视频在线免费播放| 精品一二三四| 黄片网址大全| 免费日韩黄色电影| 亚洲日韩欧美国产| 五月丁香久久| 操逼逼视频| 九色PORNY国产成人蝌蚪| 另类一区| 成人网在线观看| 操逼欧美| 亚洲av电影在线观看| 成人无码一区| 天天看天天操| 色综合色| 中文字幕亚洲有码| 成人自拍偷拍| 九九久久精品| 国产精品一级| 午夜操一操| 91精品在线播放| 亚洲无码人妻| 日韩精品成人专区无码| 九七影院第二页| 胖老板办公室沙发无套爆秘书| 在线免费观看黄色视频| 91熟女丰满原味| 一本到在线观看午夜剧场| 色999在线播放视频| 91熊猫视频| 亚洲色777| 日本伊人网| 3DAV一区二区三区动漫| YOUjiZZ欧美大全| 欧美性爱a视频| 亚洲日韩在线视频播放| 亚洲无码AV免费观看| 黄色片视频日韩| 欧美污视频在线观看| 另类欧美| 成人小说视频| 91人人操人人| 亚洲久久在线| 久久久久精| 99热在线观看精品免费| 操逼视频无码| 亚洲精品午夜精品| 九九九精品视频| 黄网站免费看| 久草资源在线| 日韩欧美在线观看视频| 超碰自拍私拍二区三区区| 久久无码黄片| 人人操人人摸人人射| 伊人成人在线观看| 欧美日韩国产精品| 99在线精品视频| 最新午夜综合福利视频| 粉嫩一区| 欧美日韩一级在线观看| 日本少妇中文字幕| 好好日视频| 亚洲秘无码一区二区三区电影| 亚洲日韩在线中文字幕| 蝌蚪窝免费视频| 亚洲国产精品午夜福利| 婷婷五月综合在线| 精品无码电影| www.91久久| 嫩草视频在线观看| 无码22p| 五月天色色小说| 国产小毛片| 99久免费视频| 中文字幕巨肉乱码中文乱码| 日韩av小电影| 男人天堂视频在线观看| 一级无码高清| 精品人妻一区| 草逼免费视频| 欧美在线观看一区| 国产三级黄色片| 久福利| 久久久久久伊人| 天天视频国产| 婷婷丁香五月综合| 五月婷婷中文| 国产精品成人片| 懂色午夜福利一区二区三区| 在线看操逼| A∨无码| 亚洲一| 波多野结衣无码AV| 成人免费毛片蓝莓| 午夜精品18视频国产17c| 欧美老女人操逼| 日韩黄色电影| 91中文| 人妻一区二区在线| 91瑟瑟| 狠狠色婷婷777| 欧美性受XXXX爽XYX熟99 | 一级A片免费视频| 亚洲无码福利| 欧美成人18| 人人澡人人爽欧一区| 日韩高清无码免费观看| 日本黄色精品| 亚洲图片中文字幕| 国产一区二区不卡亚洲涩情 | 人人做人人爽| 一卡二卡久久| 日本在线一级| 五月天成人小说| 丁香五月激情五月| 在线看a片| 日本女优婷婷青青草原| 99热在线中文字幕| 操亚洲| 欧美成人在线免费视频| 四川少妇BBBB槡BBBB槡| 亚洲狠狠干| 欧美性视频网站| 91麻豆国产在线| 天天色粽合合合合合合合| 夜夜爽妓女77777毛片A片| 人人草人人看| 免费a在线| 国产老熟女高潮毛片A片仙踪林| 亚洲射射| 亚洲无码色色| 中文字幕免费在线播放| 国产女人18毛片18精品| 国产美女精品久久AV爽| 青青激情视频| 97超碰资源站| 国产毛片一区二区| 日韩视频一区二区三区| 五月丁香欧美性爱| 大鸡巴久久久久| 在线观看亚洲一区| 俺去俺来也www色官网cms| 亚洲日韩久久| 日韩肏屄视频在线观看| 成人H视频| 51AV在线| 国产精品无码成人AV在线播放| 大香蕉福利视频| 自拍无码视频| 成人精品一区二区三区电影| 国产区欧美去区在线| 九九成人电影| 亚洲成人AV| 日韩特黄片| 亚洲AV成人无码精品区| Av一区二区三区| 亚洲天堂偷拍| 特一级黄色电影| 午夜偷拍视频| 国产精品粉嫩福利在线| 久久精品国产视频| 日逼99| 久久久久久久久久久久高清毛片一级| 亚洲国产久久| 91久久国产综合| 免费毛片网址| 99热8| 免费黄色Av| 婷婷综合一区| 一级特黄AAAA片| 亚洲综合无码| 一本色道久久88亚洲精品综合| 久久91精品| 69式荫蒂被添全过程频| 国产精品视频| 国产日韩91| 乱子伦毛片国产| av一级片| 青操av| 中文字幕国产在线观看| 俺去俺来也WWW色老板| 亚洲激情五月天| 亚洲一线在线观看| 特写毛茸茸BBwBBwBBw| 国产在线无码观看| 亚洲在线免费视频| 日本特黄一级片| 亚洲成人免费在线| 北条麻妃人妻中文无码| 大香蕉一级红色片青青河边草| 国产精品成人免费| 国产传媒精品| 91精品国产欧美一区二区成人| 亚洲成人怡红院| 中文字幕免费在线观看视频| 91精品国产91久久久久久久久久 | 国产AV播放| www.91麻豆| 天堂亚洲精品| 五月丁香婷婷啪啪| 高清日韩无码视频| 国产免费视频69| 精品1区2区| 免费A网站| 91探花足浴店按摩店| 波多野结衣AV网站| 69AV视频在线观看| 香蕉成人A片视频| 亚洲一道本在线| 天堂8在线| 狼人久久| 人人操天天| 日韩无码高清一区| 欧美在线一区二区三区| 婷婷欧美色图| 三级网站视频| 操b在线| 91久久精品国产91久久公交车| 亚洲社区在线观看| 色婷婷视频在线| 国产成人精品a区在线观看| 日本一区二区视频在线| 天天艹夜夜艹| 夜夜骚| 97国产成人| 东京热视频一区| 激情亚洲五月天| 一级黄色视频免费观看| 国产中文字幕在线视频| 天堂黄片| 中文无码高清在线| 我爱大香蕉| 四虎成人网站| 色老板在线精品免费观看| 亚洲色五月天| 人人干人人色| 婷婷五月天免费视频| 操综合网| 黄色片免费观看| 大肉大捧一进一出免费阅读| 91人人视频| 苗条一区小视频| 在线观看一区二区三区四区| 极品人妻疯狂3p超刺激| 欧美成人精品无| 久久精品久| 欧美老妇操逼| 午夜老湿机| 北条麻妃在线不卡| 人人操人人射| 美日韩一区| 亚洲三级片视频|