私がやろうとしているのは、それぞれが手順である文字のリストを持っていることです。次に、このリストからランダムに(または疑似ランダムに、それは問題ではありません)選択し、その手順を実行します。それを再度実行できるようにするには、同じ値を取得しないようにします。たとえば、5 つの値がある場合、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 回続けて実行される可能性があります。これを行う方法を何時間も探しましたが、見つかりませんでした。