我想在我按下按鈕時得到一個亂數(在“boucle”中),但是當我這樣做時,它給了我相同的數字
def boucledef(boucle=random.randint(0,10)):
global copienom, listprob
if boucle>0:
nom=selectRandom(listprob)
while copienom == nom:
nom=selectRandom(listprob)
copienom=nom
global myLabel
if boucle >1:
delete_label()
myLabel = Label(root, text=nom, font=("Arial",20), bg = couleur_bg, fg = "#2C2E75")
myLabel.pack(pady=10)
if boucle ==1:
delete_label()
myLabel = Label(root, text=nom " is choosen", font=("Arial",20), bg = couleur_bg, fg = "#2C2E75")
myLabel.pack(pady=10)
DeleteButton["state"]=NORMAL
file_menu.entryconfig("New", state="normal")
listprob=[]
root.after(1000,boucledef, boucle-1)
uj5u.com熱心網友回復:
python中的默認引數......一旦設定,這個arg有一個記憶體空間,所以它不需要呼叫random.randint(0,10)其他時間......
這是一個解決方法:
def boucledef(boucle=None):
global copienom, listprob
if boucle == None :
boucle = random.randint(0,10)
if boucle>0:
...
有關更多資訊,python 默認引數是在創建函式時評估的,而不是在您呼叫它時。如果你想仔細看看,這個執行緒可以幫助你。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/440326.html
下一篇:從資料中獲取R中函式的變數
