【问题标题】:Why the except element doesn't recognize the variable "result"为什么 except 元素无法识别变量“结果”
【发布时间】:2020-11-22 22:25:19
【问题描述】:
try:
   x = 5
   y = 0
   result = x/y
   print(result)
except Exception:
   y = 1
   print(result)

【问题讨论】:

  • 因为试图分配给结果正是失败的事情(严格来说:计算要分配的值)。
  • 您认为resultexcept 子句中有什么价值?

标签: python python-3.x exception


【解决方案1】:

当您运行这行代码 result = x/y 时,解释器会执行三个步骤。

  1. 查找名称xy 的值。
  2. 把它们分开。
  3. 将名称result绑定到除法的结果。

y0 时,第2 步的除法失败。这意味着永远不会到达第 3 步,因此没有任何内容绑定到 result。这会导致您稍后尝试打印时出错。

请注意,当尝试使用 x/y 表达式时,会立即进行除法。如果输入发生更改,则表达式不会保存并重新完成。因此,在 except 块中将 y 设置为 1 不会重新尝试除法,并且 result 仍然未定义。如果你想重做它,你需要明确地做:

except:
    y = 1
    result = x/y
    print(result)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 2019-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多