python制作的点名神器(代码简单,适合初学者),老师再也不用发愁点名了

python利用tkinter制作的点名神器,今天一个老师说让我帮他制作一个可以用来点名的小程序,由于和这个老师的关系比较好,还有就是教师这个岗位也是比较辛苦了,自己也就答应了下来,刚开始的时候,自己和这个老师在交接需求的时候,老师这边也是没有明确啥需求,再者就是这个也是自己义务奉献的,自己写的点名程序也是比较复杂的,当时交给老师的时候,老师半天来了一句,能整个简单的吗,就可以点名就行了。有点伤心,好吧,那就来个最简单的吧。
这个真的是非常简单了哈,文末附有下载地址

先看下效果图吧

python点名神器

头秃,话不多,直接上源码


#!/usr/bin/env python
# coding:gbkimport pyttsx3
import openpyxl
import random
import tkinter as tk
import tkinter.messagebox#### 利用python第三方库pyttsx3来将文字用语音发送出来
def voice(a):## pytttsx初始化engine = pyttsx3.init()## a代表着需要转成音频的文字engine.say(a)# 注意,没有本句话是没有声音的engine.runAndWait()### 创建一个list来保存已经被抽到名字的同学
ed_name= []root = tk.Tk()  # 创建窗口对象
root.title("花名册     -----点名辅助程序   v1.10     ")
root.geometry("500x300")# 创建抽取到的同学姓名展示部分
labelx=tk.Label(root,text="紫薇",fg="red",font=("宋体",80),width=9,height=2)
labelx.grid(row=0)name_data = [] # 创建存储所有学生姓名的列表def execl(filename, sheetname):wb = openpyxl.load_workbook(filename)  # 打开Excelsheet = wb[sheetname]  # 定位表单# 创建一个空列表column = 1for row in range(2, sheet.max_row + 1):if sheet.cell(row, column).value == "":continuename_data.append(sheet.cell(row, column).value)  # 将第一列的每一行数值遍历添加到name_data列表中;return name_dataexecl("config\\name.xlsx","Sheet1")  # 调用一下execl函数,在没有开始点名之前先将姓名添加到name_data列表之中def ceshi():while 2>1:a = random.randint(0,len(name_data)-1)## 产生随机数,作为list的下标indexb = "下面请"+name_data[a]+"同学来回答问题"## 拼接成字符串## 判断ed_name元素个数是不是与name_data列表中相同,如果相同,那么代表着所有的同学名字都被抽点过了if len(ed_name) == len(name_data):tk.messagebox.askokcancel("提示", '所有的学生都已经抽取了一边,如需要继续,请关闭该程序重新打开')break## 判断被抽点到的同学是不是已经被抽点过,如果被抽点过,则跳过该同学if name_data[a] in ed_name:continueed_name.append(name_data[a])    # 将被抽点到的学生添加到ed_name例表中,标记已经被抽点labelx = tk.Label(root, text=name_data[a], fg="red", font=("宋体", 80), width=9, height=2)# 在姓名框里面展示姓名labelx.grid(row=0)voice(b) ## 语音读取breaktk.Button(root, text="开始点名", width=15, command=ceshi).grid(row=1,padx=10, pady=10,sticky='s')  # s南边也就是下边root.mainloop()  # 进入消息循环

思路介绍

相信大家看了上面源码,也是知道了大概思路

  • 第一步,该程序会读取当前目录下的name.xlsx文件,并将学生姓名app到name_data列表中
  • 第二步,产生一个随机数,来作为name_data的下标,来获取名称,并展示出来
  • 第三步,判断该学生是不是被第二次抽到,避免重复抽到同一个人
  • 第四步,判断当前是不是所有人都抽到了
  • 第五步,利用tk将GUI界面展示出来

name.xlsx文件填写格式

看到图片相信大家也就懂了

结束语

源码下载地址,不建议大家下载,还是希望大家可以靠技术吃饭,香香

python制作的点名神器(代码简单,适合初学者),老师再也不用发愁点名了相关推荐

  1. 【免费超简单】班级专用抽奖点名系统支持语音报名等老师再也不用担心上课没趣味了

    ●简介:一款免费且实用的抽奖点名软件,可在班级中使用,让同学们开心! ●图示: *上图为其中一个功能配置处演示图.本程序共有四个功能配置处. *上两图均为其中两个功能使用处演示图.本程序共有五个个功能 ...

  2. python自助电影售票机_手把手教你用python抢票回家过年(代码简单)

    首先看看如何快速查看剩余火车票? 当你想查询一下火车票信息的时候,你还在上12306官网吗?或是打开你手机里的APP?下面让我们来用Python写一个命令行版的火车票查看器, 只要在命令行敲一行命令就 ...

  3. php注册登录代码初学,php 用户注册实例代码,适合初学者_PHP教程

    php教程 用户注册实例代码,适合初学者 if($_POST[submit]){ checkusername($_POST[username]); if($_SESSION["code&qu ...

  4. Python工程师简历100条技能例句,写简历再也不用愁!!

    相信大家在写简历的时候,都有过这种一种困惑,就是不知道该怎么写自己的技能清单,今天我们就给大家提供100条Python工程师简历技能例句,让大家写简历的时候再也不用发愁了. 1.熟悉Flask/Tor ...

  5. 超简单的位运算---再也不用担心看不懂题解了

    超简单的位运算---再也不用担心看不懂题解了 写在前面 1.原码.反码与补码------整形在计算机中的储存 2.移位操作符 3.位操作符 4.小练手 写在最后 写在前面 大家好,这里是风扇的小小笔记 ...

  6. 课堂随机点名神器,超简单快捷设置教程

    [点名精灵]点名软件是一款课堂随机点名神器,老师可以通过此软件轻松实现随机点名,有效的保证公平公正的点名服务. 软件使用教程: ①:先导入班级花名册,通过excel表格一键导入(可查看导入示例) ②: ...

  7. Python爬取美女主播图片适合初学者

    Python爬取虎牙女主播图片,非常适合初学者,代码少,思路清晰 开发环境Pycharm import time import requests from lxml import etree from ...

  8. 在Windows中搭建python开发环境与使用初步(适合初学者)

    在Windows中搭建python开发环境与使用初步 安装设置python运行环境 到网站https://www.python.org/downloads/windows/ 找到合适版本,下载. 双击 ...

  9. 用Python制作七夕表白神器,让你成功概率提高99.9%

    这不七夕快到了,做为编程爱好者,怎么能不漏一手呢?不知道屏幕前的你,有没有女(男)朋友呢,没有的话就赶快学会这个表白神器,让你七夕当天约会(表白)成功!!当然,这个程序非常的简单,很容易上手,接下来我 ...

最新文章

  1. 时间序列分析工具:Prophet、statsmodels、DeepAR、Xgboost类模型、RNN类模型
  2. 腾讯十年老兵:区块链本质上是一个异地多活的分布式数据库
  3. 通过ddmlib杀死某个android进程的方法
  4. 【用研】细读7张图片,教你玩转用户调研
  5. Java 为什么不支持创建泛型化数组
  6. qhfl-5 redis 简单操作
  7. linux下覆盖文件命令,在Linux中使用命令行进行文件覆盖的操作
  8. 北京市中 高英语听说计算机考,2021年北京高考首次英语听说机考时间确定,共五种题型...
  9. 慢慢人生路,学点Jakarta基础-深入剖析Java的接口和抽象类
  10. [二分搜索|快速选择] leetcode 4 寻找两个正序数组的中位数
  11. SVM-支持向量机算法概述
  12. 网络编程基础及代码实现
  13. 论文阅读 decaNLP -- The Natural Language Decathlon: Multitask Leaning as Question Answering
  14. 串口协议发送数据格式详细分析
  15. 避免使用宏#define定义常量
  16. 适合普通人的108个短视频项目:抖音手绘玩法揭秘(1)
  17. 【FCPX插件】56种标题文本输入逐字出现字幕打字机动画效果 Typing Titles,支持M1芯片!
  18. 网络舆情风险点排查工作实施方案
  19. webrtc学习笔记二:webrtc介绍
  20. 仁微电子-医院智慧病房物联网系统

热门文章

  1. 图像处理库中图片缩放参数分析
  2. Instrusive hdu 5040 优先队列+BFS
  3. 自动控制原理课本和习题答案
  4. GNSS数据下载网站整理,包括gamit、bernese更新文件地址[2021.08更新]
  5. 【BIOS 系列 2】编写驱动库模板
  6. 最中二的性能测试工具--vegeta
  7. Cocos2dx Lua开发环境搭建
  8. 利用pyqt5写个界面
  9. Android 有盟分享组件开发—微信未知错误
  10. SpringBoot+Nacos+OpenFeign环境搭建