这篇文章主要介绍了python用tkinter实现一个能进行随机抽取n个人名的界面,文中通过示例代码介绍的非常详细,具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
前言
- 文章用到 tkinter用于界面美化
- datatime 实时显示时间
- random 随机抽取人名
提示:以下是本篇文章正文内容,下面案例可供参考
一、random库的简单介绍?
import random
print(random.randint(1,10)) # 产生 1 到 10 的一个整数型随机数
print(random.random()) # 产生 0 到 1 之间的随机浮点数
print(random.uniform(1.1,5.4)) # 产生 1.1 到 5.4 之间的随机浮点数,区间可以不是整数
print(random.choice('today')) # 从序列中随机选取一个元素
print(random.randrange(1,100,2)) # 生成从1到100的间隔为2的随机整数
a=[1,3,5,6,7] # 将序列a中的元素顺序打乱
random.shuffle(a)
print(a)
二、功能实现步骤
1.导入库
代码如下(示例):
import datetime
from tkinter import *
import random
2.编写类(获取数据、随机数字、实时时间)
代码如下(示例):
class random_name_class(object):
# 获取数据,班级人名
def from_data(self):
with open('roll_call.txt', encoding='utf-8') as file_obj:
contents = file_obj.read()
stuff = contents.split(' ')
return stuff
# 随机数字-开启
def start_execute(self):
global time
name=self.from_data()
print(name)
a = random.sample(name, 5)
num["text"] = a
# num["text"] = random.randint(1,1000)
time = num.after(1, self.start_execute)
print(time)
# 随机数字-关闭
def stop_execute(self):
num.after_cancel(time)
def uptime(self):
global TimeLabel
TimeLabel.config(text=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
root.after(200, self.uptime)
注意:此处数据在roll_call.txt文件中,人名之间以空格隔开,效果如下:
3.tkinter实现界面显示
代码如下(示例):
# 根窗口创建
root = Tk()
root.title("随机抽取")
root.geometry("600x400")
#标题
Label_title =Label(root,text = '随机抽取五位同学',font=('Arial','20'),fg='blue',height=2).pack()
num = Label(root, text="看看是哪五位", bg='yellow',font="微软雅黑 18 bold",width = 500,height = 2)
num.pack()
# 框架控件创建
buttonbox = Frame(root)
buttonbox.pack(pady=50)
# 按钮控件创建
name_class=random_name_class()
start = Button(buttonbox, text="开始",font="微软雅黑 16", relief="groove", command=name_class.start_execute)
start.pack(side=LEFT, padx=10)
stop = Button(buttonbox, text="暂停", font="微软雅黑 16",relief="groove", command=name_class.stop_execute)
stop.pack(side=RIGHT, padx=10)
# 显示时间
TimeLabel = Label(font='微软雅黑 12',text = "%s" %(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),))
TimeLabel.pack(fill=BOTH,padx=10)
root.after(100,name_class.uptime())
root.mainloop()
4.界面效果
总结
以上就是今天要讲的内容,本文实现了从数据中随机抽取5个同学的名字,界面十分直观,同学们可自行修改代码实现m个数据随机抽取n个人,只需修改少数代码即可。
版权声明:本文为weixin_49298240原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。