Операция по считыванию данных типа str, в thinker python, а так же поставки условия if, elif, else
Почему то со строки не списывается '+'. Без условия всё работает, а вот с ними всегда переходит в значение else. Я хочу сделать что бы человек выбирал операцию, по типу +, -, *, /. Надеюсь вы поможете, я прикрепил код:
from optparse import Values
from tkinter import *
from tokenize import Double
from tkinter.ttk import Combobox
window = Tk()
window.title("Unior | Programm")
x_1 = DoubleVar()
x_2 = DoubleVar()
x = DoubleVar()
y_1 = StringVar()
y = StringVar()
def result():
if y_1 == '+':
x.set(x_1.get() + x_2.get())
lbl_4.configure(textvariable=x)
if y == 2:
lbl_4.configure(textvariable=x)
else:
lbl_4.configure(text='Возникла ошибка \nповторите попытку')
lbl_1 = Label(window, text="Введите первое число: ", font=("Arial Bold", 10))
lbl_1.grid(column=0, row=0)
lbl_2 = Label(window, text="Введите второе число: ", font=("Arial Bold", 10))
lbl_2.grid(column=0, row=1)
lbl_3 = Label(window, text="Выбор операции: ", font=("Arial Bold", 10))
lbl_3.grid(column=0, row=2)
lbl_4 = Label(window, text="", font=("Arial Bold", 10))
lbl_4.grid(column=1, row=4)
window.geometry('600x400')
txt_1 = Entry(window,width=10, textvariable=x_1,)
txt_1.grid(column=1, row=0)
txt_2 = Entry(window,width=10, textvariable=x_2)
txt_2.grid(column=1, row=1)
txt_3 = Entry(window,width=10, textvariable=y_1)
txt_3.grid(column=1, row=2)
btn_1 = Button(window, text="Нажмите для проведения операции", font=("Arial Bold", 10), command=result)
btn_1.grid(column=1, row=3)
window.mainloop()
Ответы (1 шт):
Автор решения: n1tr0xs
→ Ссылка
Потому что y_1 всегда равен PY_VAR3 в вашем коде. Чтобы получить ввод пользователя нужно использовать метод get объекта PY_VAR3 (y_1.get() == '-'). Что, кстати, вы делаете с x_1 и x_2, но по какой-то причине не сделали с y_1.
y_1.get() == 2 и y_1 == 2 НИКОГДА не выполнится, потому что в пером случае сравнение строки, а во втором объекта StringVar с числом.