Python - Tkinter Entry小部件问题

时间:2013-11-14 19:31:08

标签: python-3.x tkinter

我的项目的代码有很多麻烦,需要用这段代码进行简单的乘法:错误是“值错误:int()基于10的无效文字:”

    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()                               

1 个答案:

答案 0 :(得分:2)

您收到该错误是因为您尝试将非数字字符串('')转换为整数。 ''没有明显的数字等价物,因此Python无法处理它。如果mEntry.get()'salmon',则会发生同样的情况。

''的预期值是mEntry.get()吗?如果是这样,也许您需要一些特定的逻辑来处理它。例如,如果您希望''为您提供0,则可以执行以下操作:

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

如果''不是mEntry.get()的预期值,那么问题可能在您的代码中更早。