大家好,
我不明白为什么即使发生错误,解释器也不会最终确定优先级并输出它?
该程序接受两个参数并将一个除以另一个。我正在尝试捕获异常并以文本格式显示它们的值。在任何情况下,最终条件都会被输出。
代码示例:
def separator(num_1, num_2):
try:
ans = num_1 / num_2
return ans
except ZeroDivisionError as e:
print(f'ай яй, яй делить на ноль можно не многим__', e)
except TypeError as e:
print(f'Ну и как ты собрался делить числа и строки?__', e)
except NameError as e:
print(f'Непонятный символ__', e)
finally:
print("I'm happy that you learn python")
print(separator(10, p))
例如,如果您指定任何值,解释器会抛出 NameError。最后应该推演一下思路。事实上,在其中一个例外中为 NameError 指定了,但带有 NameError 的例外条件甚至没有通过调试。
提前感谢您帮助我找出错误所在。
如果您谈论的是解释器对未知变量发誓的事实
p
:然后,毕竟,
separator
移动没有到达函数调用,因此try/except/finally
位于分隔符函数内部的块根本不会被执行。Python 不明白它是什么p
,也不能调用函数separator
——毕竟,它不知道它需要传递什么参数。如果你想在这一行中发现一个错误,那么你需要用结构将它包围起来
try/except/finally
:结论: