示例1:
a='2'
if a == '1' or a=='2':
print('yes')
else:
print('no')
示例1中,我们可以输入1或者2,那么可以得到预期的yes或者no
示例2:
a='2'
if a == '1' or '2':
print('yes')
else:
print('no')
在示例2中,会发现无论我们输入什么都会得到yes.
我们看下or的运算原理:or是从左到右计算表达式,返回第一个为真的值。
所以a == 1' or '2'
会永远为True
示例3:
a='2'
if a == ('1' or '2'):
print('yes')
else:
print('no')
在示例3中,会发现只有输入1的时候,会得到预期结果yes.
同理,我们看下or的运算原理:or是从左到右计算表达式,如果有一个值为真,or 立刻返回该值;如果所有的值都为假,or 返回最后一个假值.
所以a == '('1' or '2')
的结果为1
总结
主要是理解并记住 and 和 or 的概念.
在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值;而是,返回它们实际进行比较的值之一。
and: 从左到右演算表达式,如果布尔上下文中的所有值都为真,那么 and 返回最后一个值;如果布尔上下文中的某个值为假,则 and 返回第一个假值
or: 从左到右演算表达式,如果有一个值为真,or 立刻返回该值;如果所有的值都为假,or 返回最后一个假值