gpt4 book ai didi

python - 评估 Python 中的比较运算符的异常行为

转载 作者:太空宇宙 更新时间:2023-11-04 10:28:40 25 4
gpt4 key购买 nike

我这学期正在学习 Python 入门类(class)(使用 3.4),最近遇到了一个关于运算符优先级和使用括号使语句计算为真的练习。

确切的问题是:

Add a single pair of parentheses to the expression so that it evaluates to true.
1 < -1 == 3 > 4

我假设正确答案是:

1 < -1 == (3 > 4)

鉴于比较运算符都处于同一优先级,它们应该从左到右求值,所以它应该这样求值:

1 < -1 == (3 > 4) 
1 < -1 == False
False == False
True

但是当我运行代码时它仍然返回 false。我看到了这个问题comparison operators' priority in Python vs C/C++该表达式的结果对我来说是有意义的;但在这种情况下,我在评估表达式的其余部分之前强制对后一条语句进行评估,所以我不明白为什么我仍然得到错误的答案。

过去一个小时我一直盯着它看,我觉得我可能忽略了一些明显的东西;如果有人可以就正确的解决方案提供一些见解,我们将不胜感激。

最佳答案

这个任务被证明是不可能的。考虑这三种情况:

  1. -1 前有一个左括号.

  2. -之间有一个开括号和 1 .

  3. 其他任何地方都有一个开放的 parent 。

这三种情况代表了括号的所有可能位置。

在第一种情况下,我们有 1 < ( ... ) ,其中省略号是一个 bool 表达式。自 1不小于 TrueFalse , 整个表达式为 False .

在第二种情况下,我们有 1 < -( ...) ,其中省略号是一个 bool 表达式。自 1不小于 -True也不-False , 整个表达式为 False .

在第三种情况下,我们有 1 < -1 == ... .由于链式运算符表达式的所有分支都必须为 True,并且并且由于 1 < -1为假,整个表达式为False .

因此,在所有可能的情况下,结果都是 False。

关于python - 评估 Python 中的比较运算符的异常行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28228711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com