Python语法中的Python字符串

xis*_*xis 5 python

使用'str in str in str'语法看一段代码很奇怪,例如:

>>> 'test' in 'testtest' in 'testtesttest'
True
>>> 'test' in 'testtest' in 'tb3'
False
>>> 'test' in 'testtesta' in 'testtesttest'
False
>>> 'test' in ('testtest' in 'testtesttest')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
    'test' in ('testtest' in 'testtesttest')
TypeError: argument of type 'bool' is not iterable
Run Code Online (Sandbox Code Playgroud)

似乎'in ... in ...'类似于'<... <...'比较.但是一个快速的谷歌没有引导我到官方的答案.有帮助吗?

Ary*_*thy 5

Python文档的官方答案:

comp_operator ::=  "<" | ">" | "==" | ">=" | "<=" | "!="
                   | "is" ["not"] | ["not"] "in"
Run Code Online (Sandbox Code Playgroud)

in关键字是比较运算符.并且"比较可以任意链接".请注意,这并不局限于"值比较"( ,>,==等).

有问题的代码检查每个代码是否是链中下一个项的子字符串.