【问题标题】:Divide by zero error input into Tkinter message for a calculator除以零错误输入到计算器的 Tkinter 消息中
【发布时间】: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,您不能每次遇到问题时都在这里转储代码。

标签: python python-3.x tkinter error-handling calculator


【解决方案1】:

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

except (SyntaxError, NameError, ZeroDivisionError):

【讨论】:

  • 谢谢!我以为你可以做 ' 除了 SyntaxError 或 NameError 或 ZeroDivisionError '
猜你喜欢
  • 2018-05-11
  • 2022-01-11
  • 2015-03-16
  • 1970-01-01
  • 2013-04-29
  • 2016-05-06
  • 2018-08-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多