Найти - Пользователи
Полная версия: Достать int из entry и сравнить.
Начало » GUI » Достать int из entry и сравнить.
1
Arkella
Здравствуйте, в общем, недавно начал учиться программировать на python, хочу сделать программу c помощью tkinter, где я ввожу 2 числа в разные строки(entry) и хочу их сравнить по нажатию кнопки, какая из них больше или меньше. Дело в том, что когда я пытаюсь их сравнить:
if int(a) > int(b):
                  print("1")
elif int(a) == int(b):
                 print("2")
elif int(a) < int(b):
                  print("3")
Выходит ошибка: ValueError: invalid literal for int() with base 10: ''. Получал значение из строк так:
a = entry.get()
 b = entry1.get()
Если после нажатия кнопки прописать print(a) или print(b), то введенное число отображается, а как дело доходит до сравнивания, то выходит та ошибка. Исправьте непутевого.
ayb
А вот так ?

import tkinter
class App(tkinter.Tk):
    def __init__(self):
        tkinter.Tk.__init__(self)
        self.entry_1 = tkinter.Entry(self)
        self.entry_2 = tkinter.Entry(self)
        self.button = tkinter.Button(self, text="Compare !",
                                     command=self.compare)
        self.entry_1.pack()
        self.entry_2.pack()
        self.button.pack()
    def compare(self):
        a = self.entry_1.get()
        b = self.entry_2.get()
        print(int(a) > int(b))
app = App()
app.mainloop()

Все дело в том, что скорее всего Вы получаете данные из полей ввода до того, как программа запустилась, поэтому там пустые строки, которые питон не может привести к типу int и выдает ошибку.

Вот тут расписано всё.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB