3 回答

TA貢獻1785條經驗 獲得超8個贊
‘and’、‘or’和‘not’的優先級是not>and>or
首先,‘and’、‘or’和‘not’的優先級是not>and>or。
and :x and y 返回的結果是決定表達式結果的值。如果 x 為真,則 y 決定結果,返回 y ;如果 x 為假,x 決定了結果為假,返回 x。
or :x or y 跟 and 一樣都是返回決定表達式結果的值。
not : 返回表達式結果的“相反的值”。如果表達式結果為真,則返回false;如果表達式結果為假,則返回true。
其次,邏輯操作符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.

TA貢獻1815條經驗 獲得超13個贊
簡單解釋就是:
and -> A and B -> 表示A和B都必須同時滿足才可以
or -> A or B -> 表示A或B,兩者滿足一個,其中任意一個,就可以了
not A -> 對于A取反 -> A原來是真,則現在是假;A原來是假,則現在是真。
這些,其實和Python關系不大,和你對于基本的,編程語言中的邏輯,不理解有關系。
很多語言,都是這個邏輯的。也本身是符合人類的邏輯的。
感興趣的,自己去看:
【教程】Python開發入門詳解
(此處不給貼地址,請用google搜標題,即可找到地址的)

TA貢獻1794條經驗 獲得超8個贊
滿足條件的解只有兩個:
a<0 and b>0 或者 a>0 and b<0
所以推算一下,只要滿足a*b<0這唯一條件便足夠了。
1 2 | if (a*b)<0: return True |
添加回答
舉報