我是python的初学者,我想用tkinter制作一个缺席数字随机化程序

2024-06-18 05:40:06 发布

您现在位置:Python中文网/ 问答频道 /正文

import random

from tkinter import *

win = Tk()
win.geometry("700x600")
win.title("pengocok keberuntungan")

isi = Entry(win,width=25,font =("arial",25))
isi.pack()

isi2 = Text(win,width=56,height=25,font=("arial",10))
isi2.pack()

mylist = (list(range(1,35)))
b =  random.sample(mylist,34)
print (b)

def acak():
    for i in b:
        pass

        isi.delete(0,END)
        isi.insert(END,i)
        isi2.insert(END,isi.get()+"\n")


acak_tombol = Button (win,text = "di acak",command =acak)
acak_tombol.pack(pady=20)

win.mainloop()

我的问题是,当我点击按钮时,它已经立即随机分配了我所有的34个朋友。我想要的是,每次我点击“acak”按钮时,我的随机同学中的一个会被插入到文本框中,直到我的34个朋友都得到了他们的队友,我才可以加倍。顺便问一下,我该如何将缺席人数与我的34名同学联系起来?因此,当按下“acak”按钮时,会弹出的是我朋友的姓名,缺席号码会一个接一个地插入文本框,而不是像我的问题那样立即出现


Tags: import朋友randomwidth按钮winpackend
2条回答

将行b = random.sample(mylist, 34)移到函数中。每次调用该函数时都会执行它

您可以先创建一个随机列表,并在单击按钮时使用索引逐一引用它。这样,相同的数字就不会重复

请参考下面的代码

import random

from tkinter import *

win = Tk()
win.geometry("700x600")
win.title("pengocok keberuntungan")

isi = Entry(win,width=25,font =("arial",25))
isi.pack()

isi2 = Text(win,width=56,height=25,font=("arial",10))
isi2.pack()

mylist = (list(range(1,35)))
b =  random.sample(mylist,34)
i=0
print (b)

def acak():
    global b
    global i
    if i<len(b):
        isi.delete(0,END)
        isi.insert(END,b[i])
        i+=1
        isi2.insert(END,isi.get()+"\n")


acak_tombol = Button (win,text = "di acak",command =acak)
acak_tombol.pack(pady=20)

win.mainloop()

相关问题 更多 >