python 邏輯運算及奇怪的返回值(not,and,or)
- 2022 年 3 月 11 日
- 筆記
首先,『and』、『or』和『not』的優先級是not>and>or。
同一優先級從左往右計算。
先說非運算,Python的非運算與這些語言相比,並沒有特別的地方。not只有兩個返回值,True和False。在Python中,真值為假的對象,包括False,None,數字0,空字符串以及空的容器類型。除此以外的任何對象均為真。
接下來是與運算,Python的與(and)運算的規則是
若左邊的表達式為真,則返回右邊表達式的值
否則,返回左邊表達式的值
最後再來說或運算,Python的或(or)運算的規則是
若左邊的表達式為真,則返回左邊的表達式的值
否則,返回右邊的表達式的值
用代碼來感受一下吧:


那現在我們再加入優先級相關的混合運算:

#首先 not 的優先級最高那麼not 8 返回False
#(False or 3 and 4 or 2 and 0 or 9 and 7 )
#接下來的優先級是and
#(False or 4 or 0 or )
#最後or 返回真值 4

