【发布时间】:2012-01-02 09:21:17
【问题描述】:
有人可以向我解释为什么在评估数值表达式时,Python 作为评估的结果返回最后被评估的东西吗?
例如:
3 and 5
评估为
5
我的另一个问题是,当我尝试检查时,它为什么还要评估这些表达式:
3 == True
我得到 False 但当我评估时:
3 and 5
并得到 5 结果它显然(我认为)认为 3 评估为 True 因为如果它认为否则它不会继续评估(我可能在这里错了)。 相反,当我评估时:
0 and 3
我得到 0,我认为正在发生的事情是 Python 检查 0 是否为 True,确定它不是并将其吐出。
如果这听起来有点混乱,我很抱歉,但我在书中偶然发现了这一点,并且很好奇我是否遗漏了什么。
【问题讨论】:
-
这里有一些非常好的答案:stackoverflow.com/questions/3826473/…
-
另外,这里记录了这种行为:docs.python.org/reference/expressions.html#and
-
谢谢,我发现这也包含一些很好的答案:stackoverflow.com/questions/3181901/…