Python"in"和"=="混淆

pet*_*ete 5 python

print('a' in 'aa')
print('a' in 'aa' == True)
print(('a' in 'aa') == True)
print('a' in ('aa' == True))
Run Code Online (Sandbox Code Playgroud)

输出是

True
False
True
Traceback (most recent call last):
  File "main.py", line 6, in <module>
    print('a' in ('aa' == True))
TypeError: argument of type 'bool' is not iterable
Run Code Online (Sandbox Code Playgroud)

如果第2行既不是第3行也不是第4行,那么它是什么?怎么会变错?

Pat*_*ner 8

根据表达式

print('a' in 'aa' == True)
Run Code Online (Sandbox Code Playgroud)

被评估为

'a' in 'aa' and 'aa' == True
Run Code Online (Sandbox Code Playgroud)

是的False.

看到

print("a" in "aa" and "aa" == True)
Run Code Online (Sandbox Code Playgroud)

==> False

其余的都是微不足道的 - 它有助于保持操作员的优先权,以便弄明白.


类似的:

用不同的陈述.我标记为dupe,但用户界面很不稳定 - 我回答的问题不是解释为什么的确打印了它的作用.