我无法生成随机数并打印i。

2024-04-18 21:37:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法生成数字,因为我得到错误NameError:名称“z”未定义。你知道吗

import tkinter as tk
from random import randint

def randomize():
    z.set ( randint(x.get(),y.get()))

root = tk.Tk()

x = tk.IntVar()
y = tk.IntVar()

text= tk.Label(root, text = "press the button for random number")
enterX = tk.Entry(root)
enterY = tk.Entry(root)
button = tk.Button(root, text = "Press here", command=randomize)
result = tk.Label(root,text="Number is:")
number = tk.Label(root, textvariable=z)

text.pack()
enterX.pack()
enterY.pack()
button.pack()
result.pack()
number.pack()

root.mainloop()

我需要帮助来解决这个错误


Tags: textimportnumberget错误buttonrandomroot
1条回答
网友
1楼 · 发布于 2024-04-18 21:37:49

你有两个问题。你知道吗

一个。全局命名空间中缺少z = tk.Intvar()。你知道吗

两个。您需要为每个输入字段分配一个IntVar()

请记住,您没有验证输入字段,因此如果有人键入的不是整数,您将遇到错误。你知道吗

看看这个代码。你知道吗

import tkinter as tk
from random import randint

def randomize():
    z.set(randint(x.get(),y.get()))
    print(z.get()) # added print statement to verify results.

root = tk.Tk()

x = tk.IntVar()
y = tk.IntVar()
z = tk.IntVar() # added IntVar()

text= tk.Label(root, text = "press the button for random number")
enterX = tk.Entry(root, textvariable=x) # added textvariable
enterY = tk.Entry(root, textvariable=y) # added textvariable
button = tk.Button(root, text = "Press here", command=randomize)
result = tk.Label(root,text="Number is:")
number = tk.Label(root, textvariable=z)

text.pack()
enterX.pack()
enterY.pack()
button.pack()
result.pack()
number.pack()

root.mainloop()

相关问题 更多 >