示例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 返回最后一個假值