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

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”按钮时,我的 1 个随机同学就会被插入到文本框中,并且在我所有 34 个朋友都获得他们的队友之前不能加倍。顺便问一下,我如何将那个缺席的号码与我的 34 位同学联系起来?所以当按下“acak”按钮时会弹出的是我朋友的名字,并且缺失的号码被一一插入到文本框中,而不是像我的问题一样立即出现。


慕的地6264312
浏览 113回答 2
2回答

慕姐4208626

您可以先创建一个随机列表,然后在单击按钮时通过索引逐一引用它。这样相同的数字就不会重复。请参考下面的代码。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 =&nbsp; random.sample(mylist,34)i=0print (b)def acak():&nbsp; &nbsp; global b&nbsp; &nbsp; global i&nbsp; &nbsp; if i<len(b):&nbsp; &nbsp; &nbsp; &nbsp; isi.delete(0,END)&nbsp; &nbsp; &nbsp; &nbsp; isi.insert(END,b[i])&nbsp; &nbsp; &nbsp; &nbsp; i+=1&nbsp; &nbsp; &nbsp; &nbsp; isi2.insert(END,isi.get()+"\n")acak_tombol = Button (win,text = "di acak",command =acak)acak_tombol.pack(pady=20)win.mainloop()

蝴蝶刀刀

将行移至b = random.sample(mylist, 34)函数中。每次调用该函数时都会执行它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python