小编Kee*_*lee的帖子

为什么python“in”语句以这种方式评估?

抱歉,我想不出更具描述性的标题。这不是非常重要,而是我发现的python 3.8(至少)中的一个奇怪的怪癖,我想我不可能是唯一注意到这一点的人,并且可能有一个合理的解释:

>>> 'foo' in 'foobar' == True
False
Run Code Online (Sandbox Code Playgroud)

它也以另一种方式工作:

>>> True == 'foo' in 'foobar'
False
Run Code Online (Sandbox Code Playgroud)

但是,从逻辑上讲,我认为这应该是 True,因为

>>> 'foo' in 'foobar'
True
>>> True == True
True
Run Code Online (Sandbox Code Playgroud)

我假设这是某种操作顺序错误,但是当我尝试对其进行分组时,我得到

>>> ('foo' in 'foobar') == True
True
>>> 'foo' in ('foobar' == True)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: argument of type 'bool' is not iterable
Run Code Online (Sandbox Code Playgroud)

在这一点上,我主要只是很好奇,如果有人能解释这一点,那就太好了!

python logical-operators python-3.x

6
推荐指数
1
解决办法
60
查看次数

标签 统计

logical-operators ×1

python ×1

python-3.x ×1