今年教師節前夕,我特意用Python做了個學生點名系統,非常好用,送給各科老師、輔導員當節日禮物,老師們都喜滋滋,說平常逃課就原諒我了,我心想,這次畢業應該不是問題了~ 本文背景 根據我的調查,現在的學生大部分都很積極,會主動舉手回答問題。但是,也會遇到一些不好的情況,比如年級越高主動舉手的人越少, ...
今年教師節前夕,我特意用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 == '姓名': 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='公平 公正 公開') 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例