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