慕的地6264312
2023-07-18 10:10:18
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
提交
取消