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