今年教師節前夕,我特意用Python做了個學生點名系統,非常好用,送給各科老師、輔導員當節日禮物,老師們都喜滋滋,說平常逃課就原諒我了,我心想,這次畢業應該不是問題了~
本文背景
根據我的調查,現在的學生大部分都很積極,會主動舉手回答問題,但是,也會遇到一些不好的情況,比如年級越高主動舉手的人越少,有些班級舉手的通常都是少部分積極的學生,有部分學生從來不舉手,
所以我做了一個一個隨機的學生點名系統可以幫老師解決這些問題,
-
隨機點名會從全班學生中隨機點一個學生,這樣所有人都有機會回答問題,促進教育公平,
-
點名系統有幾秒鐘滾動的時間,會增加學生的緊張感,讓開小差的學生也趕緊集中精神,起到一點督促學習的作用,
-
如果真的沒有學生舉手,老師也不用為難,點名系統可以作為老師的“殺手锏”,
實際情況中可以一部分時間靠學生主動,一部分時間用點名系統,靈活使用,
效果展示
本文用Python實作了一個非常好用的學生點名系統,文末代碼提供打包好的系統下載方式,先看一下效果:

實作方式
1、讀取excel表格
openpyxl是Python中用于讀寫excel檔案非常方便的庫,pip install openpyxl安裝即可使用,
本文用openpyxl來讀取excel中的所有學生姓名,
def get_students_name(): # 學生名單中需要有"姓名"列 workbook = openpyxl.load_workbook('學生名單.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 =https://www.cnblogs.com/hahaa/archive/2022/09/12/= '姓名': 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、搭建系統界面
tkinter是Python中GUI編程非常好用的庫,而且是標準庫,不需要安裝,匯入即可使用,
本文用tkinter搭建學生點名系統的界面,并在界面上實作點名按鈕和顯示點名結果,
if __name__ == '__main__': window = tk.Tk() window.geometry('600x400+400+180') window.title('\t 第一屆LOL點名系統') # 添加背景圖片 bg_png = tk.PhotoImage(file="背景圖片.png") bg_label = Label(window, image=bg_png) bg_label.pack() # 添加顯示框 var = StringVar(value=https://www.cnblogs.com/hahaa/archive/2022/09/12/'公平 公正 公開') 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、隨機選擇學生
random庫是Python中用于實作隨機功能的庫,也是Python的標準庫,不需要安裝,匯入即可使用,
本文用random從學生名單中隨機選擇一個姓名,結合time模塊設定延時,實作點名按鈕的業務邏輯函式,
def call_lucky_student(var): """點名""" # Python學習交流群 279199867 原始碼及素材群內自取 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可執行檔案的庫,pip install pyinstaller安裝即可使用,
本文用pyinstaller將點名系統的代碼打包成exe檔案,這樣系統可以發給老師使用,不懂編程也沒關系,
使用說明和下載方式
使用說明:
1.下載本系統后,解壓檔案,將整個檔案夾保存到電腦中(建議不要放在桌面),
2.打開學生名單excel表格,將學生姓名和學號輸入表格中,保存,(洗掉本文的虛擬名單)
3.找到student.exe ,右鍵創建一個桌面快捷方式,
4.在桌面雙擊打開點名系統,即可正常使用,
下載方式:
完整代碼和打包好的學生點名系統在上方代碼內
運行代碼需要的背景圖片,按鈕圖片,以及測驗用的學生名單也可以一并獲取,
以上就是本文的全部內容,如果你喜歡這個點名系統,歡迎點贊、評論和收藏,
推薦教程:Python實戰100例
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/506530.html
標籤:其他
