【发布时间】:2015-01-13 08:10:48
【问题描述】:
我想知道 Python 如何计算整数或表达式。网上的研究并没有得到满意的答案。
问题 1
5<5 or 10
上面的结果是10,我不明白为什么。
问题 2
如何:
False or 10
返回 10?
还有:
如何:
True or 10 返回真?
问题 3
怎么做:
5 or 10 返回 5?
编辑:
改写的问题:
Why does Python return Boolean (True/False) when true and the Value (5 or 10) when false? I understand that it is a language, but is there a reason why it was mad so?
【问题讨论】:
-
似乎
or的返回是第一个非False参数(或者False如果两个参数都是False) -
你是什么意思如何?你的意思是它是如何实现的(在这种情况下,在哪个发行版中?CPython?)还是你真正的意思是为什么(在这种情况下:而不是什么?)
-
是的,Dmitry 解释正确。本质上,您只需要了解“或”运算符只关心对象是否评估为
True,并将返回第一个,或者只是最后一个。在您的True or 10和5 or 10示例中,True和5均评估为 True(例如,False和0在这种情况下将是相反的,因为两者都将评估为 False )。另外:or运算符按照参数设置的顺序评估参数,但仅如果前面的参数失败;仅当第一个不是 True 时才评估第二个,依此类推。
标签: python boolean expression evaluation