【python】用tkinter实现一个能随机抽取n个人的界面

这篇文章主要介绍了python用tkinter实现一个能进行随机抽取n个人名的界面,文中通过示例代码介绍的非常详细,具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


前言

  1. 文章用到 tkinter用于界面美化
  2. datatime 实时显示时间
  3. 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个人,只需修改少数代码即可。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值