【发布时间】:2012-10-22 18:37:13
【问题描述】:
我想要做的是,有一个字符列表,每个字符都是一个过程,然后我想从这个列表中随机选择(或伪随机,没关系),并执行该过程,然后我希望能够再次运行它,而不是获得相同的值,例如,如果我有五个值,我希望能够运行它 5 次,那么我第 6 次运行它,它什么也不返回。代码如下:
from Tkinter import*
from random import randint
Characters=[Percy,Annabeth,Leo,Chuck,Sarah]
Used = []
def callback():
end = len(Characters)-1
rando = randint(0,end)
Characters[rando]
for i in Characters:
if Characters[rando] in Used:
print 'This has already been used'
else:
Characters[rando]()
Used.append(Characters[rando])
break
game = Tk()
game.geometry('50x50+700+100')
Button1 = Button(game,text = '1',command =lambda:callback() )
Button1.pack(side=LEFT)
game.mainloop()
我正在努力
callback()
要正常运行,你看到的我都试过了,但我也试过了
if Characters[rando] in Used:
print 'This has already been used'
else:
Characters[rando]
Used.append(Characters[rando])
在这两种情况下,它都会多次运行相同的程序,例如,“Leo”可能会连续执行 3 次。我花了好几个小时寻找一种方法来做到这一点,但我找不到。
【问题讨论】:
-
这里已经得到很好的回答:stackoverflow.com/questions/3791400/…
标签: python random python-2.7 unique