最近需要做一个点名器,自己就用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()