Python邏輯運算子之與或非

2021-10-14 09:27:06 字數 2722 閱讀 7775

在看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...