詳解Python中的邏輯運算符and or 和not
- 2020 年 1 月 1 日
- 筆記
總體解釋
首先,『and』、『or』和『not』的優先級是not>and>or。
其次,邏輯操作符and 和or 也稱作短路操作符(short-circuitlogic)或者惰性求值(lazy evaluation):它們的參數從左向右解析,一旦結果可以確定就停止。例如,如果A 和C 為真而B 為假, A and B and C 不會解析C 。作用於一個普通的非邏輯值時,短路操作符的返回值通常是最後一個變量。因此,邏輯運算符的理解也與C語言中不同。舉個例子:

輸出內容:

在以上例子中,按照C語言對的思維,3 and 4即3與4為3,但是由於是短路操作符,結果為4,是因為and運算符必須所有的運算數都是true才會把所有的運算數都解析,並且返回最後一個變量,即為4;改變一下順序4 and 3 ,結果也不一樣,即為3
而或邏輯(or),即只要有一個是true,即停止解析運算數,返回最近為true的變量,即 3 or 4,值為3;改變順序4 or 3 即為4
個人理解
賦值變量為非布爾型時,進行判斷永遠返回真,所以and時,由於兩個值都是true,則返回末尾的值,or 時,由於第一個已經是true了,所以第二個將不再繼續判斷。