import randomfrom 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”按钮时,我的 1 个随机同学就会被插入到文本框中,并且在我所有 34 个朋友都获得他们的队友之前不能加倍。顺便问一下,我如何将那个缺席的号码与我的 34 位同学联系起来?所以当按下“acak”按钮时会弹出的是我朋友的名字,并且缺失的号码被一一插入到文本框中,而不是像我的问题一样立即出现。
2 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
您可以先创建一个随机列表,然后在单击按钮时通过索引逐一引用它。这样相同的数字就不会重复。
请参考下面的代码。
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()
添加回答
举报
0/150
提交
取消