2013-11-14 2 views
0

Имея много проблем с этим битом кода для моего проекта, необходимо выполнить простое умножение с этим кодом: Ошибка: «Значение Ошибка: неверный литерал для базы данных int():«Проблемы с виджетами Python - Tkinter

def multcalc(): 
         ans1=int(mEntry1.get()) #This is where it's locating the error 
         ans2=int(mEntry2.get()) # 
         print(ans1*ans2) 
         return 
        multmenu=Tk() 
        mEntry1=StringVar() 
        mEntry2=StringVar() 
        multmenu.geometry('450x450+200+200') 
        multmenu.title('Multiplication') 
        input1msg=Label(text='Enter your first input').pack() 
        input1entry=Entry(multmenu,textvariable=mEntry1).pack() 
        input2msg=Label(text='Enter your second input').pack() 
        input2entry=Entry(multmenu,textvariable=mEntry2).pack() 
        mCalculate=Button(multmenu,text='Enter',command=multcalc).pack()        

ответ

2

Вы получаете эту ошибку, потому что пытаетесь сделать нечисловую строку ('') целым числом. '' не имеет очевидного числового эквивалента, поэтому Python не может справиться с этим. То же самое произойдет, если mEntry.get() был 'salmon'.

Is '' Ожидаемое значение для mEntry.get()? Если это так, возможно, вам нужна определенная логика для решения этой проблемы. Например, если вы хотите '' дать вам 0, вы можете сделать следующее:

s = mEntry1.get() 
if s != '': 
    ans1 = 0 
else: 
    ans1 = int(s) 

Если '' не ожидаемое значение mEntry.get(), то, возможно, проблема в начале кода.

Смежные вопросы