为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地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()


查看完整回答
反对 回复 2023-07-18
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

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



查看完整回答
反对 回复 2023-07-18
  • 2 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信