• 教师节到了,用Python做了个非常好用的学生点名系统


    教师节到了,用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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    openpyxl使用参考:Python使用openpyxl模块读写excel文件

    2.搭建系统界面

    tkinter是Python中GUI编程非常好用的库,而且是标准库,不需要安装,导入即可使用。

    本文用tkinter搭建学生点名系统的界面,并在界面上实现点名按钮和显示点名结果。

    if __name__ == '__main__':
        window = tk.Tk()
        window.geometry('600x400+400+180')
        window.title('\t 学 生 点 名 系 统 (公众号:小斌哥ge)')
        # 添加背景图片
        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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    3.随机选择学生

    random库是Python中用于实现随机功能的库,也是Python的标准库,不需要安装,导入即可使用。

    本文用random从学生名单中随机选择一个姓名,结合time模块设置延时,实现点名按钮的业务逻辑函数。

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    random使用参考:Python random模块常用方法的使用

    4.将代码打包成exe

    pyinstaller库是用于将Python程序打包成exe可执行文件的库,pip install pyinstaller安装即可使用。

    本文用pyinstaller将点名系统的代码打包成exe文件,这样系统可以发给老师使用,不懂编程也没关系。

    使用说明和下载方式

    使用说明:

    1.下载本系统后,解压文件,将整个文件夹保存到电脑中(建议不要放在桌面)。

    2.打开学生名单excel表格,将学生姓名和学号输入表格中,保存。(删除本文的虚拟名单)

    3.找到student.exe ,右键创建一个桌面快捷方式。

    4.在桌面双击打开点名系统,即可正常使用。

    下载方式:

    完整代码和打包好的学生点名系统可以用WX在下方点击二维码关注,然后在后台回复“点名系统”获取。

    运行代码需要的背景图片,按钮图片,以及测试用的学生名单也可以一并获取。

    以上就是本文的全部内容,如果你喜欢这个学生点名系统,欢迎点赞、评论和收藏。

    相关阅读:

    Python使用Tkinter实现滚动抽奖器
    Python使用Tkinter实现转盘抽奖器

  • 相关阅读:
    力扣刷题学习(跟随视频学着刷)
    二、考研C语言笔记——数制,数制之间转换以及应用
    r 安装源码包 安装本地r包
    超强、超详细Redis入门教程
    《程序员面试金典(第6版)》面试题 02.08. 环路检测(哈希法,双指针,检测链表是否有环)
    【Verilog 设计】Verilog 实现偶数、奇数分频和任意小数分频
    verilator的第一个程序,注意流程和命令
    JVM常用概念之锁粗化和循环
    STM32 Cubemx Freertos 工程, 用GDB进行debug时候, 跳进HardFault_Handler的问题
    初学者入门的可视化超级色彩公式
  • 原文地址:https://blog.csdn.net/weixin_43790276/article/details/126513893