在看python的時候邏輯運算子沒看懂。
x and y先學習其他語言裡的與或非。布林"與" - 如果 x 為 false,x and y 返回 x 的值,否則返回 y 的計算值。
(a and b) 返回 20
短路與(邏輯與)和非短路與。或也是如此,不在重複,接下來拿與舉例子。
這篇文章中的這個例子講解的很通透。
先來看牛客的一道題
如下語句通過算術運算和邏輯運算之後i和 j的結果是( )
int i=0;
int j=0;
if((++i>0)||(++j>0))
a i=0;j=0
b i=1;j=1
c i=0;j=1
d i=1;j=0
答案是:d
(++i>0)||(++j>0) 中的||是短路與。
這題考察短路邏輯的用法
&& 和 || 分別為 短路與 和 短路或
&& 若前面的表示式結果為false,整個邏輯表示式的結果就為false,所以後面的表示式無論true或者false都無法影響整個邏輯表示式的結果,所以為了提高**執行效率,後面的表示式就不會執行。
同理,若前面的表示式為true,則後面的表示式也無需計算。
& 和 | 為 不短路與 和 不短路或
無論什麼情況,前面的和後面的表示式都要執行。
python的與或非具有短路效果。
&&具有短路的效果。左邊是false,右邊就不執行。||具有短路的效果,左邊為true,右邊不執行
以下是對python運算子的詳細解答:運算子not,and,or
not語法:not x
作用:對x進行布林取反/取非
非真即假,非假即真
如bool(x)為true,not x 則為false
如bool(x)為false,not x 則為true
示例:not true : false
not false : true
month = 10
if not 1<=month<=12:
print(『month不在1-12之間』)
and 運算子
語法:x and y
注:x 和 y 是兩個表示式,可以是bool,也可以是非bool
如果是非bool的話,會通過bool()進行轉換
作用:將x和y做並列運算
如果x和y的結果都為true,那麼整個結果則為true
如果x和y有任意乙個結果是false,那麼整個結果則為false
示例特殊:
1. 0 and 0 :0
2. 0 and 15 :0
3. 15 and 18 :18
and 兩端的運算元,如果左側已知為false的話,則不判斷右側,並以左側運算元的值作為整體表示式的值
and 兩端的運算元,如果左側判斷為true的話,則繼續判斷右側,並以右側運算元的值作為整體表示式的值
or運算子
語法:x or y
作用:x ,y兩個條件只要有乙個為true,那麼整體結果就為true
示例:1. true or true : true
2. true or false : true
3. false or true : true
4. false or false : false
特殊:當x為true時,則以x的值作為整體表示式的結果
否則,則以y的值作為整體表示式的結果
1. 0 or 0.0 : 0.0
2. 100 or 200 : 100
3. 「我好帥」 or 「我不帥」 : 「我好帥」
4. score = input(『請輸入考試成績』) or 『0』
如果不輸入考試成績的話,score的值則為0
否則 score的值就是輸入的值
和其他語言邏輯運算的區分:
首先,『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.
參考:
python邏輯運算子
python邏輯運算子 python語言支援邏輯運算子,以下假設變數 a 為 10,b為 20 運算子 邏輯表示式 描述 例項 and x and y 布林 與 如果 x 為 false,x and y 返回 false,否則它返回 y 的計算值。a and b 返回 20。or x or y 布林...
Python邏輯運算子
算術運算子 比較 關係 運算子 運算子邏輯表示式 描述例項 andx and y 布林 與 如果 x 為 false,x and y 返回 false,否則它返回 y 的計算值 a and b 返回 20。orx or y 布林 或 如果 x 是非 0,它返回 x 的值,否則它返回 y 的計算值。a...
python 邏輯運算子
python 95 定義變數,儲存python的分數 english 92 定義變數,儲存english的分數 c 89 定義變數,儲存c語言的分數 輸出3個變數的值 print python str python english str english c str c n print python...