python写点名器

本文介绍了一种使用Python和Excel数据创建点名器的方法。通过Tkinter和随机模块,实现了从名单中随机选取学生名字的功能,并在GUI界面上显示。同时,文章提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近需要做一个点名器,自己就用python写了一个简单的点名器!!

废话不多说。直接上代码:

(1)将excle表格里面的名字导到python中,存成list的形式,在建立一个空的set,方便去掉重复的姓名
workbook = xlrd.open_workbook("name.xls")  # 读取表格
Data_sheet = workbook.sheets()[0]  # 读取sheet1
name_list = Data_sheet.col_values(1)  # 读取第二列
data = set()  # 一个空set保存选过的同学
(2)使用的python自带的tkinter,以下是定义它的标签

root = tk.Tk()
root.title("点名册")
root.geometry('250x150')

global var
var = tk.StringVar()
on_strat = False

l = tk.Label(root, textvariable=var, font=('Arial', 35), width=15, height=2)
l.pack()


(3)定义点击button的函数


def start():
    try:
        rdata = random.choice(name_list)
        if on_strat==False:
            name_list.remove(rdata)
            #print(rdata)
            if rdata not in data:
                    var.set(rdata)
                    data.add(rdata)
        if len(name_list)==0:
            var.set("-----所有同学已经遍历完-------")
    except ValueError as e:
        var.set("-----所有同学已经遍历完-------")
(4)建立一个button

B = tk.Button(root, text="start", command=start)
B.pack()

(5)其实在这个实现点名册之后,还加了背景音乐,使得效果更好一点
pygame.init()
music = pygame.mixer.music.load('bg.mp3')
pygame.mixer.music.play(-1, 100)
screen = pygame.display.set_mode((800, 600))

源码如下:
import xlrd
import random
import tkinter as tk
import pygame
workbook = xlrd.open_workbook("name.xls")  # 读取表格
Data_sheet = workbook.sheets()[0]  # 读取sheet1
name_list = Data_sheet.col_values(1)  # 读取第二列
data = set()  # 一个空set保存选过的同学

root = tk.Tk()
root.title("点名册")
root.geometry('250x150')

global var
var = tk.StringVar()
on_strat = False

l = tk.Label(root, textvariable=var, font=('Arial', 35), width=15, height=2)
l.pack()

def start():
    try:
        rdata = random.choice(name_list)
        if on_strat==False:
            name_list.remove(rdata)
            #print(rdata)
            if rdata not in data:
                    var.set(rdata)
                    data.add(rdata)
        if len(name_list)==0:
            var.set("-----所有同学已经遍历完-------")
    except ValueError as e:
        var.set("-----所有同学已经遍历完-------")
B = tk.Button(root, text="start", command=start)
B.pack()

pygame.init()
music = pygame.mixer.music.load('bg.mp3')
pygame.mixer.music.play(-1, 100)
screen = pygame.display.set_mode((800, 600))

root.mainloop()

 

### 使用Python实现随机点名 #### 实现简单命令行版本的随机点名 对于简单的应用场合,可以创建一个不依赖图形界面的命令行版随机点名。此版本适合快速测试和小型场景使用。 ```python import random def random_call(names): """ 随机点名函数 参数: - names: 学生或参与者姓名的列表 返回值: - 被随机选择的姓名 """ selected_name = random.choice(names) return selected_name def main(): # 学生或参与者姓名列表 names = ["张三", "李四", "王五", "赵六", "钱七"] # 随机点名 selected_name = random_call(names) print("被点名的人是:%s" % selected_name) if __name__ == "__main__": main() ``` 这段代码展示了如何通过`random.choice()`方法从给定的学生名单中随机选取一名同学并打印出来[^1]。 #### 基于Tkinter构建GUI版本的随机点名 当需要更直观的操作体验时,则可以选择利用Tkinter库来建立带有图形用户界面的应用程序。这使得非技术人员也能轻松操作该工具。 ```python import tkinter as tk import random # 定义窗口 window = tk.Tk() window.title('Random Name Picker') # 定义名字列表 names = ['Alice', 'Bob', 'Charlie', 'Dave', 'Eve'] # 定义点名函数 def pick_name(): # 从名字列表中随机挑选一个名字 name = random.choice(names) # 更新标签的文本 label.config(text=name) # 创建一个按钮 button = tk.Button(window, text='Pick a name', command=pick_name) button.pack() # 创建一个标签,显示选择的名字 label = tk.Label(window, text=' ') label.pack() # 运行主事件循环 window.mainloop() ``` 上述脚本不仅实现了基本的功能——即每次点击“Pick a name”按钮都会更新界面上方的文字为新选出的同学名字;还提供了更加友好的交互方式[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值