Я не могу создать случайное число и напечатать его

-8

Я не могу сгенерировать число, потому что получаю ошибку 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()

Мне нужна помощь для устранения ошибки

спросил(а) 2018-06-05T19:11:00+03:00 2 года, 4 месяца назад
0
58

У вас здесь 2 проблемы.

Один. Вам не хватает 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()

ответил(а) 2018-06-05T19:27:00+03:00 2 года, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема