除以零错误输入到计算器的 Tkinter 消息中

Posted

技术标签:

【中文标题】除以零错误输入到计算器的 Tkinter 消息中【英文标题】:Divide by zero error input into Tkinter message for a calculator 【发布时间】:2018-07-15 23:49:43 【问题描述】:

我在 python 中构建了一个计算器,它可以工作,但如果有人试图将一个数字除以零,他们不会收到“无效语法!”计算器输入错误。我怎么能做到这样的消息“无效的语法!”在计算器输入中显示?

 def equals(self):
  self.getandreplace()
  try: 
   self.value= eval(self.newtext)
  except SyntaxError or NameError:
   self.e.delete(0,END)
   self.e.insert(0,'Invalid Syntax!')
  else:
   self.e.delete(0,END)
   self.e.insert(0,self.value)

我尝试输入except NameError or SyntaxError or ZeroDivisionError,但它不起作用。该错误仅出现在 shell 中,而不是“无效语法!”。

【问题讨论】:

SyntaxError or NameError 必须是 (SyntaxError, NameError) @DYZ 没有它也可以工作 不,它没有。尝试输入“a+1”。 @DYZ 哦,我刚试过。 请提供minimal reproducible example,您不能每次遇到问题时都在这里转储代码。 【参考方案1】:

ZeroDivisionError 添加到您的例外列表中:

except (SyntaxError, NameError, ZeroDivisionError):

【讨论】:

谢谢!我以为你可以做 ' 除了 SyntaxError 或 NameError 或 ZeroDivisionError '

以上是关于除以零错误输入到计算器的 Tkinter 消息中的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL 中计算销售百分比时除零错误

如何确保将 Tkinter 表单中的值输入 MySQL 表而不是收到错误消息?

除以零 - c 编程

错误检查整数除以零

进入 C# 调试器以除以零

Erlang中除以零的精确异常类型