当我评估以下表达式时:
1 或 (1/0) 和 1
要遵循什么规则(优先级、短路评估等)才能得到答案
最佳答案
b or everything_else
被定义为在 b 为 true 时返回 b,而不评估任何内容。由于您的第一个 1 是 true-ish,因此您的 1/0 永远不会被评估,因此不会出现错误。我所说的“true-ish”是指 Python 认为为 true 的任何值,而不仅仅是 True
bool 值。尝试用 True 或 [2] 代替第一个 1 的表达式,看看我的意思。
关于Python bool 运算符的优先级规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39361258/