Python 中 IN 运算符的连词(AND 运算符)[重复]

Conjunction (AND operator) of IN operator in Python [duplicate]

提问人:Maria 提问时间:12/26/2022 最后编辑:Maria 更新时间:12/26/2022 访问量:103

问:

我想了解为什么 Python 中 IN 运算符的结果组合不能作为常规组合工作。

例:

  1. False and False and True = False (显而易见)
  2. 'a' in 'ccc' and 'b' in 'ccc' and 'c' in 'ccc' = False (确定)
  3. 'a' and 'b' and 'c' in 'ccc' = True (让我大吃一惊)

我希望第三行会返回与第一行和第二行相同的值,但事实并非如此。

为什么会这样?

python in-operator 和 operator

评论


答:

0赞 Nikolaj Š. 12/26/2022 #1

运算符优先级有严格的规则,即表达式隐式“括号”的方式。 具有更高的优先级,因此在任何连词之前首先对其进行评估。in

1赞 Lexpj 12/26/2022 #2

声明

'a' and 'b' and 'c' in 'ccc' = True

考虑 3 个条件:

'a'
'b'
'c' in 'ccc'

空字符串被视为 ,而非空字符串(任何长度)产生 。所以,产量和产量.对于,您在 OP 中已经提到过,您理解这一点。 最后,总结一下FalseTrueaTruebTrue'c' in 'ccc'

True and True and True == True
1赞 Bibhav 12/26/2022 #3

您的操作结果为 true:

result = 'a' and 'b' and 'c' in 'ccc'
#is the same as
result = bool('a') and bool('b') and bool('c' in 'ccc')
#i.e
result = True and True and True #which is true