我正在開發一款您必須擲骰子的游戲。當我按下按鈕時,會出現一個從 1 到 6 的隨機值并列印在視窗中 - 這很好。問題是我需要以某種方式獲得與“骰子”顯示的值相同的值。這是我的代碼:
from tkinter import *
import random
window=Tk()
window.geometry("400x400")
l1=Label(window)
def roll():
dice=random.randint(1,6)
l1.config(text=f'{dice}')
l1.pack()
b1=Button(window,text="Roll the Dice!",foreground='blue',command=roll)
b1.pack()
window.mainloop()
在這里,我想獲取值骰子并在其他地方使用該值,但功能roll系結到按鈕b1的命令。我嘗試創建另一個函式甚至一個類,但后來遇到了其他問題,例如即使我反復按下按鈕等,骰子上的數字也不會改變。現在我已經沒有想法了。你能不能編輯我的代碼,讓程式像以前一樣作業,但它也回傳骰子顯示的值,以便我可以在其他地方使用相同的值?
uj5u.com熱心網友回復:
您可以使用全域變數:
from tkinter import *
import random
window=Tk()
window.geometry("400x400")
l1=Label(window)
l2=Label(window)
def roll():
global dice
dice=random.randint(1,6)
l1.config(text=f'{dice}')
l1.pack()
def last():
l2.config(text=f'Last roll was {dice}')
l2.pack()
b1=Button(window,text="Roll the Dice!",foreground='blue',command=roll)
b1.pack()
b2=Button(window,text="Get last roll",foreground='blue',command=last)
b2.pack()
window.mainloop()
注意:這需要您先按下“滾動”按鈕。如果你先按下“last”按鈕,你會得到一個NameError例外(可以通過dice在全域范圍內定義一個初始值來防止)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/370226.html
上一篇:函式內的函式次數未知
