【发布时间】:2020-03-08 20:59:47
【问题描述】:
try:
float(self.entry_weight.get()) and int(self.entry_height.get())
self.get_bears()
except:
messagebox.showinfo("Number Error","Your weight and height must be a number!")
你好, 这个 try/except 语句似乎不起作用,当我在输入框中输入数字并单击相关按钮时,我只得到消息框,说我的输入不是数字。 我已经使用打印语句来确保我正在测试正确的输入框并且我是。当我测试我按预期返回的类型时,但如果这些字符串输入肯定是数字,那么 try except 语句应该可以工作。任何帮助都会非常感谢。
【问题讨论】:
-
and关键字并不像您认为的那样。另一个提示:永远不要捕获所有可能的异常,只捕获你期望的异常,这样你就可以正确处理它们 -
@user8408080 - ...但除非重量为零。
-
是的,
0被 Python 强制转换为False,但你必须同意,这个检查不应该那样做 -
and一旦检测到 False 就会短路。如果重量为零,则永远不会进行测试。如果您的目标是测试这两个值是否可以转换,请在没有“and”的单独行中进行 -
@user8408080 - 是的,我同意。只是它不是问题的解释。