计算器在Tkinter

时间:2017-04-28 21:29:57

标签: python-3.x tkinter calculator

我正在为一个学校项目制作一个计算器,老师告诉我该做什么并且有效。或者我认为当我清理程序时,我意识到它只能起作用" +"并没有其他按钮。任何帮助将不胜感激。

tempstr=my_text.get()
loopval=len(tempstr)
op=tempstr.index("+")
if (op>0):
    leftnum=tempstr[0:op]
    rightnum=tempstr[op+1:loopval+1]
    answe=int(leftnum)+int(rightnum)
    print (answe)
    my_text.insert(END,str(answe))
op=tempstr.index("-")
if (op>0):
    leftnum=tempstr[0:op]
    rightnum=tempstr[op+1:loopval+1]
    answe=int(leftnum)-int(rightnum)
    print (answe)
    my_text.insert(END,str(answe))
op=tempstr.index("*")
if (op>0):
    leftnum=tempstr[0:op]
    rightnum=tempstr[op+1:loopval+1]
    answe=int(leftnum)*int(rightnum)
    print (answe)
    my_text.insert(END,str(answe))
op=tempstr.index("/")
if (op>0):
    leftnum=tempstr[0:op]
    rightnum=tempstr[op+1:loopval+1]
    answe=int(leftnum)/int(rightnum)
    print (answe)
    my_text.insert(END,str(answe))

1 个答案:

答案 0 :(得分:0)

如果找不到子字符串,

index会抛出错误。 tkinter中的错误会停止函数但不会停止循环,因此您可能没有注意到它。您打算使用find,如果找不到则返回-1。

更好的是这样:

if "+" in tempstr:
    op=tempstr.index("+")
    leftnum=tempstr[0:op]
    rightnum=tempstr[op+1:loopval+1]
    answe=int(leftnum)+int(rightnum)
    print (answe)
    my_text.insert(END,str(answe))
elif '-' in tempstr:
    op=tempstr.index("-")
    leftnum=tempstr[0:op]
    rightnum=tempstr[op+1:loopval+1]
    answe=int(leftnum)-int(rightnum)
    print (answe)
    my_text.insert(END,str(answe))