吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3949|回复: 20
收起左侧

[Python 转载] 今天教师节用Python写个点名软件

   关闭 [复制链接]
jinyi666 发表于 2022-9-10 18:35
本帖最后由 jinyi666 于 2022-9-10 20:42 编辑

教师节到了,祝伟大的老师们教师节快乐!!!



本人是在校大学生,上课时老师会提问题比如年级越高主动举手的人越少,有些班级举手的通常都是少部分积极的学生,有部分学生从来不举手
所以写个点名系统帮老师解决这些问题



用到的库:
openpyxl是Python中用于读写excel文件
tkinter是Python中GUI编程非常好用的库,而且是标准库,不需要安装,导入即可使用
random库是Python中用于实现随机功能的库,也是Python的标准库,不需要安装,导入即可使用


[Python] 纯文本查看 复制代码

import tkinter as tk
from tkinter import *
import random
import time
import openpyxl

is_run = False


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


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


if __name__ == '__main__':
    window = tk.Tk()
    window.resizable(width=False, height=False)
    window.geometry('600x400+400+180')
    window.title('\t 学 生 点 名 系 统')

    # 添加显示框
    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 = Button(window, text='点 名', compound='center', font='楷体 -30 bold',
                    foreground='#9400D3',
                    command=lambda: call_lucky_student(var))
    button.place(anchor=NW, x=235, y=200)
    # 显示窗口
    window.mainloop()











下面是用pyinstaller打包成的exe
https://wws.lanzouv.com/iJpOh0bfczxc
密码:4gq4


使用说明:
把学生名单excel表格和软件放在同一个位置打开软件即可




免费评分

参与人数 3吾爱币 +9 热心值 +3 收起 理由
hayyot + 1 + 1 我很赞同!
voa258 + 1 + 1 我很赞同!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ok667 发表于 2022-12-6 23:45
Liu1224 发表于 2022-9-21 11:16
我在儿Excel里打上学生名单后,将这两者放到同一个文件夹里,打开软件按点名没反应。

学生名单.xlsx

excel文件名要写对“学生名单”
 楼主| jinyi666 发表于 2022-9-21 21:18
Liu1224 发表于 2022-9-21 11:16
我在儿Excel里打上学生名单后,将这两者放到同一个文件夹里,打开软件按点名没反应。

学生名单中需要有"姓名"列
 楼主| jinyi666 发表于 2022-9-10 18:37
本帖最后由 jinyi666 于 2022-9-10 19:13 编辑

这是软件界面
捕获.PNG
wang919 发表于 2022-9-10 20:35
6666666666
laixingcui 发表于 2022-9-11 16:10
老师的福音,支持楼主。
启蛰 发表于 2022-9-12 15:29
公平、公正、公开……让我想起了单位的书记。莫名背脊一凉。
bobobi 发表于 2022-9-13 12:06
本是同根生,相煎何太急。哈哈哈哈
jstar 发表于 2022-9-17 16:32
嗷呦,科技改变生活
如风 发表于 2022-9-20 11:25
提示错误 ,计算机中丢失api-ms-.......... dll
Liu1224 发表于 2022-9-21 11:16
我在儿Excel里打上学生名单后,将这两者放到同一个文件夹里,打开软件按点名没反应。
wyangdh 发表于 2022-9-21 15:27
谢谢楼主分享,学习学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:07

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表