在Python中使用或操作员



请说明Python中的或操作员正在发生的事情

>>>sen='abcdef'
>>>'a' in sen
True
>>>'v' or 'z' in sen
'v'
>>>('v' or 'z') in sen
False
>>>('v' or 'a') in sen
False
>>>('a' or 'v') in sen
True

第一个输出显然是有道理的。从第二个输出中,我不遵循正在发生的事情!

使用括号时,您会告诉解释器首先解释括号内的内容。因此,让我们从第二个开始,从输出开始:

>>>('v' or 'z') in sen

您在这里所做的是: ('v' or 'z')转换为v,因为它从左到右 - 它们都评估为True,因此,如果您要编写'z' or 'v',则会对z进行评估。因此,您正在检查v是否在sen中 -> False

继续:

>>>('v' or 'a') in sen --> is 'v' inside sen?
False
>>>('a' or 'v') in sen --> is 'a' inside sen?
True

最新更新