import random import pandas as pd from tkinter import * import threading import os # pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple # pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple # pyinstaller -F -i dog.ico -w 随机点名.py desktop_path = os.path.join(os.path.expanduser("~"), "Desktop") absPath = desktop_path + '/学生表.xlsx' class Demo: def __init__(self): self.user_list = pd.read_excel(absPath).姓名.tolist() self.windows = Tk() self.start = True self.stop = True self.index = '' self.label_var = StringVar(value='XXXXX') self.button_var = StringVar(value=f'开始') def ui(self): self.windows.resizable() self.windows.title('班级点名') width, height = 800, 800 scree_width = (self.windows.winfo_screenwidth() - width) // 2 scree_height = (self.windows.winfo_screenheight() - height) // 2 self.windows.geometry(f'{width}x{height}+{scree_width}+{scree_height}') (Label(self.windows, textvariable=self.label_var, font=('微软雅黑', 60), height=4, background='grey') .pack(side=TOP, fill='x')) (Button(self.windows, textvariable=self.button_var, font=('微软雅黑', 20), command=lambda: self.thread(self.show_name)) .pack(side=TOP, fill='x')) self.windows.mainloop() def thread(self, function): th = threading.Thread(target=function) th.daemon = True th.start() def show_name(self): if self.start: self.button_var.set(f'暂停') self.start = False while self.stop: if len(self.user_list) == 0: self.user_list = pd.read_excel(absPath).姓名.tolist() self.index = random.randint(0, len(self.user_list) - 1) self.label_var.set(self.user_list[self.index]) if not self.stop: self.stop = True del self.user_list[self.index] self.button_var.set(f'开始(剩余{len(self.user_list)})') else: self.start = True self.stop = False if __name__ == '__main__': Demo().ui()python编写的随机点名小程序
张小明
前端开发工程师
零基础入门:用OPEN-AUTOGLM快速上手编程
快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 为编程新手设计一个简单的OPEN-AUTOGLM教程项目,生成一个“Hello World”应用,并逐步扩展为包含用户输入和简单逻辑的程序。要求每一步都有详细注释和解释&…
企业级数据库管理:Navicat Premium实战安装指南
快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个企业级Navicat Premium部署方案,包含批量安装脚本、许可证管理模块和权限配置模板。支持AD域集成,能够自动识别网络中的数据库服务器并建立初始连接…
对比评测:传统PE制作 vs AI辅助开发效率提升300%
快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个微PE工具开发效率对比演示项目:1.传统方式手动编写磁盘分区功能代码 2.使用AI生成相同功能代码 3.实现并排效率对比界面 4.记录各阶段耗时 5.生成可视化对比图…
AI如何帮你快速解决Spring Bean创建异常
快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个Spring Boot项目示例,演示当出现org.springframework.beans.factory.BeanCreationException错误时的典型场景。要求包含:1) 一个故意配置错误的Ser…
电商系统开发:BIGDECIMAL在金额计算中的实战
快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个电商订单金额计算模块,使用BigDecimal实现以下功能:1. 计算订单总金额(商品单价数量);2. 计算折扣后金额&#…
1小时搞定:快速搭建邮箱收集系统原型
快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 使用快马平台快速构建一个邮箱收集系统原型,包含:1. 响应式收集页面;2. 邮箱验证功能;3. 管理后台查看收集结果;4. 数据…