提问人:Maria 提问时间:12/26/2022 最后编辑:Maria 更新时间:12/26/2022 访问量:103
Python 中 IN 运算符的连词(AND 运算符)[重复]
Conjunction (AND operator) of IN operator in Python [duplicate]
问:
我想了解为什么 Python 中 IN 运算符的结果组合不能作为常规组合工作。
例:
False and False and True = False
(显而易见)'a' in 'ccc' and 'b' in 'ccc' and 'c' in 'ccc' = False
(确定)'a' and 'b' and 'c' in 'ccc' = True
(让我大吃一惊)
我希望第三行会返回与第一行和第二行相同的值,但事实并非如此。
为什么会这样?
答:
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 中已经提到过,您理解这一点。
最后,总结一下False
True
a
True
b
True
'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
评论