基于Python實(shí)現(xiàn)簡(jiǎn)單的學(xué)生點(diǎn)名系統(tǒng)
今年教師節(jié)前夕,我特意用Python做了個(gè)學(xué)生點(diǎn)名系統(tǒng),非常好用,送給各科老師、輔導(dǎo)員當(dāng)節(jié)日禮物,老師們都喜滋滋,說(shuō)平常逃課就原諒我了,我心想,這次畢業(yè)應(yīng)該不是問(wèn)題了~
本文背景
根據(jù)我的調(diào)查,現(xiàn)在的學(xué)生大部分都很積極,會(huì)主動(dòng)舉手回答問(wèn)題。但是,也會(huì)遇到一些不好的情況,比如年級(jí)越高主動(dòng)舉手的人越少,有些班級(jí)舉手的通常都是少部分積極的學(xué)生,有部分學(xué)生從來(lái)不舉手。
所以我做了一個(gè)一個(gè)隨機(jī)的學(xué)生點(diǎn)名系統(tǒng)可以幫老師解決這些問(wèn)題。
隨機(jī)點(diǎn)名會(huì)從全班學(xué)生中隨機(jī)點(diǎn)一個(gè)學(xué)生,這樣所有人都有機(jī)會(huì)回答問(wèn)題,促進(jìn)教育公平。
點(diǎn)名系統(tǒng)有幾秒鐘滾動(dòng)的時(shí)間,會(huì)增加學(xué)生的緊張感,讓開(kāi)小差的學(xué)生也趕緊集中精神,起到一點(diǎn)督促學(xué)習(xí)的作用。
如果真的沒(méi)有學(xué)生舉手,老師也不用為難,點(diǎn)名系統(tǒng)可以作為老師的“殺手锏”。
實(shí)際情況中可以一部分時(shí)間靠學(xué)生主動(dòng),一部分時(shí)間用點(diǎn)名系統(tǒng),靈活使用。
效果展示
本文用Python實(shí)現(xiàn)了一個(gè)非常好用的學(xué)生點(diǎn)名系統(tǒng),文末名片提供打包好的系統(tǒng)下載方式。先看一下效果:
實(shí)現(xiàn)方式
1、讀取excel表格
openpyxl是Python中用于讀寫(xiě)excel文件非常方便的庫(kù),pip install openpyxl安裝即可使用。
本文用openpyxl來(lái)讀取excel中的所有學(xué)生姓名。
def get_students_name(): # 學(xué)生名單中需要有"姓名"列 workbook = openpyxl.load_workbook('學(xué)生名單.xlsx') table = workbook.active rows, cols = table.max_row, table.max_column name_col = 0 for col in range(cols): if table.cell(1, col + 1).value == '姓名': name_col = col break students_name = [table.cell(row+1, name_col+1).value for row in range(1, rows) if table.cell(row+1, name_col+1).value is not None] return students_name
2、搭建系統(tǒng)界面
tkinter是Python中GUI編程非常好用的庫(kù),而且是標(biāo)準(zhǔn)庫(kù),不需要安裝,導(dǎo)入即可使用。
本文用tkinter搭建學(xué)生點(diǎn)名系統(tǒng)的界面,并在界面上實(shí)現(xiàn)點(diǎn)名按鈕和顯示點(diǎn)名結(jié)果。
if __name__ == '__main__': window = tk.Tk() window.geometry('600x400+400+180') window.title('\t 第一屆LOL點(diǎn)名系統(tǒng)') # 添加背景圖片 bg_png = tk.PhotoImage(file="背景圖片.png") bg_label = Label(window, image=bg_png) bg_label.pack() # 添加顯示框 var = StringVar(value='公平 公正 公開(kāi)') show_label1 = Label(window, textvariable=var, justify='left', anchor=CENTER, width=16, height=2, font='楷體 -40 bold', foreground='white', bg='#1C86EE') show_label1.place(anchor=tk.NW, x=130, y=90) # 添加點(diǎn)名按鈕 button_png = tk.PhotoImage(file='button.png') button = Button(window, text='點(diǎn) 名', compound='center', font='楷體 -30 bold', foreground='#9400D3', image=button_png, command=lambda: call_lucky_student(var)) button.place(anchor=NW, x=235, y=200) # 顯示窗口 window.mainloop()
3、隨機(jī)選擇學(xué)生
random庫(kù)是Python中用于實(shí)現(xiàn)隨機(jī)功能的庫(kù),也是Python的標(biāo)準(zhǔn)庫(kù),不需要安裝,導(dǎo)入即可使用。
本文用random從學(xué)生名單中隨機(jī)選擇一個(gè)姓名,結(jié)合time模塊設(shè)置延時(shí),實(shí)現(xiàn)點(diǎn)名按鈕的業(yè)務(wù)邏輯函數(shù)。
def call_lucky_student(var): """點(diǎn)名""" global is_run if is_run: return is_run = True start = time.time() choice_student(var, start) def choice_student(var, start): global is_run show_member = random.choice(get_students_name()) name = show_member[0] for zi in show_member[1:]: name += ' ' + zi var.set(name) end = time.time() if is_run and end-start <= 5: window.after(30, choice_student, var, start) else: is_run = False return
4、將代碼打包成exe
pyinstaller庫(kù)是用于將Python程序打包成exe可執(zhí)行文件的庫(kù),pip install pyinstaller安裝即可使用。
本文用pyinstaller將點(diǎn)名系統(tǒng)的代碼打包成exe文件,這樣系統(tǒng)可以發(fā)給老師使用,不懂編程也沒(méi)關(guān)系。
使用說(shuō)明
使用說(shuō)明:
1.下載本系統(tǒng)后,解壓文件,將整個(gè)文件夾保存到電腦中(建議不要放在桌面)。
2.打開(kāi)學(xué)生名單excel表格,將學(xué)生姓名和學(xué)號(hào)輸入表格中,保存。(刪除本文的虛擬名單)
3.找到student.exe ,右鍵創(chuàng)建一個(gè)桌面快捷方式。
4.在桌面雙擊打開(kāi)點(diǎn)名系統(tǒng),即可正常使用。
到此這篇關(guān)于基于Python實(shí)現(xiàn)簡(jiǎn)單的學(xué)生點(diǎn)名系統(tǒng)的文章就介紹到這了,更多相關(guān)Python學(xué)生點(diǎn)名系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 基于Python編寫(xiě)一個(gè)點(diǎn)名器的示例代碼
- Python寫(xiě)一個(gè)簡(jiǎn)單上課點(diǎn)名系統(tǒng)(附源碼)
- python實(shí)戰(zhàn)練習(xí)做一個(gè)隨機(jī)點(diǎn)名的程序
- Python實(shí)現(xiàn)上課點(diǎn)名器系統(tǒng)
- 一起用Python做個(gè)上課點(diǎn)名器的制作過(guò)程
- python用tkinter實(shí)現(xiàn)一個(gè)簡(jiǎn)易能進(jìn)行隨機(jī)點(diǎn)名的界面
- 基于python tkinter的點(diǎn)名小程序功能的實(shí)例代碼
- python寫(xiě)一個(gè)隨機(jī)點(diǎn)名軟件的實(shí)例
- Python輕松寫(xiě)個(gè)課堂隨機(jī)點(diǎn)名系統(tǒng)
相關(guān)文章
Python中BeautifulSoup通過(guò)查找Id獲取元素信息
這篇文章主要介紹了Python中BeautifulSoup通過(guò)查找Id獲取元素信息,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Python如何根據(jù)頁(yè)碼處理PDF文件的內(nèi)容
在Python中,fitz庫(kù)可以用于多種任務(wù),如打開(kāi)PDF文件、遍歷頁(yè)面、添加注釋、提取文本、旋轉(zhuǎn)頁(yè)面等,此外,它還可以用于在PDF頁(yè)面上添加高亮注釋、提取圖像等操作,這篇文章主要介紹了Python根據(jù)頁(yè)碼處理PDF文件的內(nèi)容,需要的朋友可以參考下2024-06-06淺談django框架集成swagger以及自定義參數(shù)問(wèn)題
這篇文章主要介紹了淺談django框架集成swagger以及自定義參數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07pandas中concat函數(shù)實(shí)現(xiàn)橫向連接
在pandas中,concat函數(shù)可用于合并不同的Series和DataFrame對(duì)象,本文主要介紹了pandas中concat函數(shù)實(shí)現(xiàn)橫向連接,具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04tensorflow 恢復(fù)指定層與不同層指定不同學(xué)習(xí)率的方法
今天小編就為大家分享一篇tensorflow 恢復(fù)指定層與不同層指定不同學(xué)習(xí)率的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Python實(shí)現(xiàn)aes加密解密多種方法解析
這篇文章主要介紹了Python實(shí)現(xiàn)aes加密解密多種方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05pycharm配置Anaconda虛擬環(huán)境全過(guò)程
這篇文章主要介紹了pycharm配置Anaconda虛擬環(huán)境全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01