我正在学习 python,只是在摆弄我能做的事情。作为一个更大项目的概念证明,我制作了一个非常非常简单的 python 脚本,它将在 GUI 上显示“一”或“二”,但这不起作用。随机选择者总是选择“二”而不是“一”。这是代码:
from tkinter import*
import random
root = Tk()
root.geometry("800x500")
root.title("amazing")
def one():
label1 = Label(root, text="one", font=("Comic Sans MS", 30), fg="purple").place(x=100, y=300)
def two():
label2 = Label(root, text="two", font=("Comic Sans MS", 30), fg="purple").place(x=100, y=300)
rchoice = [two, one]
doit = random.choice(rchoice)
Button = Button(root, text="Button", width=15, height=3, font=("Comic Sans MS", 20), fg="blue", bg="lightgreen", command=doit).pack(pady=50)
root.mainloop()
最佳答案
单击按钮时程序始终运行相同选项的原因是,标签(one
或 two
)是在程序启动时选择的,而不是每次都选择单击该按钮。因此,当您的程序启动时,它将选择 one
或 two
,然后该按钮将始终运行所选标签(直到重新启动)。基本上,random.choice
在开始时仅执行一次,然后在程序运行期间设置 doit
。
要解决此问题,您需要在单击按钮时选择标签。您可以通过重新定义 doit
来做到这一点,如下所示:
def doit():
rchoice = [one, two]
selected = random.choice(rchoice)
return selected()
关于python - 为什么这个随机选择器总是选择相同的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53598858/