【发布时间】:2014-04-28 20:17:56
【问题描述】:
在玩的时候发现了这个小怪。
>>> 'Hello' == ('Hello' or 'World')
True
>>> 'Hello' == ('World' or 'Hello')
False
>>> 'Hello' == ('Hello' and 'World')
False
>>> 'Hello' == ('World' and 'Hello')
True
这个逻辑有什么我没有理解的技巧吗?为什么字符串的顺序是这些查询的决定因素?我根本不应该使用括号吗?为什么更改为“和”会翻转输出?
谢谢你。
【问题讨论】:
-
只需在交互式提示中输入
'Hello' or 'World',看看会发生什么。 -
>>> 'Hello'返回'Hello'。我直接从 UNIX shell 中复制了它。 -
只需在交互式提示中输入
'Hello' or 'World',看看会发生什么。 -
为什么所有的反对票?诚然,这可能在其他地方得到了回答,但对于不熟悉该语言的人来说,这仍然是一种令人惊讶的行为,而且问题本身的措辞也足够好。
-
好的,所以我重读了你的评论,捂着脸,然后试了一下。那么
or返回第一个值,and返回最后一个值?而or比and更“强”?因为我然后尝试了这个:'Hello' or 'World' and '!'它返回了'Hello'
标签: python python-2.7 logic boolean-expression