Операция по считыванию данных типа 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 с числом.

→ Ссылка