Python中的and和or
引子:
print('' or 5 or 0) # 5 print(5 and 4) # 4 print('' or 5 or 0 and 4) # 5出現以上情況的原因是什么呢?
print(bool('')) # False print(bool(0)) # False所有變量的位操作都是通過強制轉換成bool實現的,并且表達式的值是從左到右第一個能夠確定表達式的值的變量。
再看一個布爾運算例子
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' print(False and True) # False print(False and False) # False print(True and True) # True print(True and False) # Falseprint(False or True) # True print(False or False) # False print(True or True) # True print(True or False) # True結合三個例子來看:
(‘’ or 5 or 0)==(False or True or False),當遇到第一個True的時候,表達式的值等于True這個變量(5)的值,并且不會再去管后面是什么,所以返回5.
對python而言
其一, 在不加括號時候, and優先級大于or
and運算有假則取假,如果沒有假則取最后一個真(需要保證為真,則需要運算打最后一個真)
or運算會取從左到右的第一個真,若果沒有就取假
其二, x or y 的值只可能是x或y. x為真就是x, x為假就是y
第三, x and y 的值只可能是x或y. x為真就是y, x為假就是x
顯然,
對于, 1 or 5 and 4: 先算5 and 4, 5為真, 值為4. 再算1 or 4, 1 為真,值為1
對于, (1 or 5) and 4: 先算1 or 5, 1為真, 值為1. 再算1 and 4, 1為真,值為4
在Python中,空字符串為假,非空字符串為真。非零的數為真。
數字和字符串之間、字符串之間的邏輯操作規律是:
對于and操作符:
只要左邊的表達式為真,整個表達式返回的值是右邊表達式的值,否則,返回左邊表達式的值
對于or操作符:
只要兩邊的表達式為真,整個表達式的結果是左邊表達式的值。
如果是一真一假,返回真值表達式的值
如果兩個都是假,比如空值和0,返回的是右邊的值。(空值或0)
總結一句話就是:無論操作符是哪個,最后的結果一定是按照計算順序能最快判斷出結果的那個表達式決定的
總結
以上是生活随笔為你收集整理的Python中的and和or的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用Python编辑一个发送邮件的脚本
- 下一篇: python使用@property @x