前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python实现高校上课随机点名系统V1版

Python实现高校上课随机点名系统V1版

作者头像
阿黎逸阳
发布2020-10-29 10:13:35
1.6K0
发布2020-10-29 10:13:35
举报

在读大学时,很多老师在课前或课后都会进行点名,有时在课中也会抽某些同学回答问题。

一般是老师拿出一个花名册,然后按顺序点到或随机抽一些人名进行点名。

今天我们用Python来实现一个简单的点名系统,之后有时间再慢慢调优这个程序。你也可以把这个程序改成公司开会或聚会的随机点名系统。

本文目录

  1. 自动点名程序效果展示
  2. 加载库
  3. 设置文件路径并加载数据
  4. 定义一个随机筛选名字并语音播报的函数
  5. 定义窗口并展示点名系统

一、自动点名程序效果展示

我们先来看看随机点名小程序最终的实现效果。

接下来我们来详细介绍如何用Python制作随机点名程序。

二、加载库

首先加载实现本文功能需要的库。

代码语言:javascript
复制
import tkinter as tk
from pandas import read_excel
from random import randint
import os
from PIL import Image
from PIL import ImageTk
from win32com.client import Dispatch

三、设置文件路径并加载数据

Python中有可以自动播报语音的库,这样就可以免去我们一个一个念名字的麻烦啦。

代码语言:javascript
复制
#控制播放语音
speaker = Dispatch("SAPI.SpVoice")
#设置文件存放路径
os.chdir(r"F:\微信公众号\Python\46_随机点名系统")

#读入数据
data = read_excel(r'学生名单.xls')
df1 = list(data['姓名'])
df2 = list(data['性别'])

注意:os.chdir中的文件路径要改成你存放学生名单的路径。

四、定义一个随机筛选名字并语音播报的函数

定义一个可以反复调用的随机筛选名字并语音播报的函数。

代码语言:javascript
复制

def roll_call():
    if len(df1)>0:
        index_ = randint(0, len(df1) - 1)
        name = df1.pop(index_)
        sex = df2.pop(index_)
        t.insert('insert', f'{name}  {sex}\n')   # 插入到tkinter界面
        speaker.Speak(name)
    else:
        speaker.Speak('点名结束')

五、定义窗口并展示点名系统

最后我们定义一个展示窗口,在窗口中生成一些按钮和名字展示模块,当点击按钮时实现自动点名播报。

代码语言:javascript
复制
win = tk.Tk()
win.title('欢迎进入点名程序')
win.iconbitmap("pikaqiu2.ico")
win.geometry('900x900')

# Entry单行文本
L = tk.Label(win, bg='lemonchiffon', text = "随机点名小程序", font=("KaiTi", 26), width=55, height=3) # 关键:设置为背景图片
L.place(x=0, y=0)

#设置随机点名按钮,退出系统按钮
b1 = tk.Button(win, bg='lightblue', text="随机点名", font=("KaiTi", 16), width=20, height=2, command=roll_call)
b1.place(x=250, y=200)
b2 = tk.Button(win, bg='lightblue', text="退出系统", font=("KaiTi", 16), width=20, height=2, command=win.quit)
b2.place(x=550, y=200)

# Entry 单行文本
L = tk.Label(win, text="点到的学生名单如下", font=("KaiTi", 18), width=60, height=1)
L.place(x=90, y=315)

# 设置多行文本框  宽 高  文本框中字体  选中文字时文字的颜色
t = tk.Text(win, width=60, height=100, font=("KaiTi", 24), selectforeground='black')  #显示文本
t.place(x=90, y=350)

win.mainloop()

至此,自动点名系统介绍完毕。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 阿黎逸阳的代码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档