我正在用Python tkinter开发计算器程序,我需要对用户计算的输入进行异常处理:
例如用户按了2/0导致 ZeroDivisionError,
乱按了一通导致 SyntaxError,
我还想知道还可能引发什么错误。
我的界面是这样的,里面涉及到了四则运算,乘方开根号,整除求余数,与或等,如下所示
allkeysstr=
{"+":(("+","加"),9,3),"-":(("-","减"),8,3),"×":(("*","乘"),7,3),
"÷":(("/","除以"),6,3),"^":(("**","幂"),3,0),
"sqrt":(("math.sqrt(","平方根","sqrt("),3,1),
"fac":(("math.factorial(","阶乘","fac("),3,2),
"/":(("//","除以(取整)"),10,0),"≡":(("%","除以(求余)"),10,1),
"&":(("&","按位与"),2,0),"|":(("|","按位或"),2,1),
"⊕":(("^","按位异或"),2,2),"~":(("~","按位取反"),2,3),
"Ans":(("ans","表示上一次运算的结果","A"),5,3),"X":(("x",str(x)),5,0),
"Y":(("y",str(y)),5,1),"Z":(("z",str(z)),5,2),
"π":((str(math.pi),"圆周率"),4,0),
"τ":((str(math.tau),"2π=τ"),4,1),
"e":((str(math.e),"自然常数"),4,2),
"Ran":(("random.random()","表示0-1之间的随机数","R"),9,0),
"∞":(("math.inf","无穷大"),4,3),".":((".","小数点"),9,2),
"abs":(("abs(","绝对值","abs("),3,3),"0":(("0",None),9,1)
,"1":(("1",None),8,0),"2":(("2",None),8,1)
,"3":(("3",None),8,2),"4":(("4",None),7,0)
,"5":(("5",None),7,1),"6":(("6",None),7,2)
,"7":(("7",None),6,0),"8":(("8",None),6,1)
,"9":(("9",None),6,2),"(":(("(","左括弧"),10,2),")":((")","右括弧"),10,3)}
上面的一些数据不用注意,这是按钮大致意思