这是我的代码:
from Tkinter import*
from random import radint
Characters=[Percy,Annabeth,Leo,Chuck,Sarah]
Used = []
def callback():
selected = None
end = len(Characters)-1
rando = randint(0,end)
selected = Characters[rando]
for i in Characters:
if i in Used:
print 'This has already been used'
else:
Characters[rando]()
Used.append(Characters[rando])
game = Tk()
game.geometry('50x50+700+100')
Button1 = Button(game,text = '1',command =lambda:callback() )
Button1.pack(side=LEFT)
game.mainloop()
应该发生的是,程序运行,窗口中有1个按钮,您单击该按钮,它从“字符”列表中随机选择一个值(所有这些都是程序),执行程序然后添加将选定的值添加到“已使用”列表中,然后当您再次单击该按钮时,它会检查该值是否已被使用,如果已使用,则打印“已使用”,如果没有,则执行。但是发生了什么,它会多次运行相同的程序,然后当我关闭根窗口(游戏)时,它会重新执行我点击按钮时执行的所有程序。我一直在做这个一个小时,无法弄清楚。