python中and or和not邏輯運算子,一直理解不了,求幫助

2021-04-28 17:36:21 字數 2557 閱讀 9233

1樓:王叔叔喝的高

『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.

2樓:哼哼哈嘿

0 and 1 結果為0;3 and 4結果為4;其實本質都是兩者都為1時結果才為1,python中除0之外所有正整數在邏輯運算子的時候都可以理解為1,and需要確定兩者是否均為1時才輸出結果,否則則輸出0,3 and 4中,到4的時候確定了兩者均為1,所以輸出了結果4。or則是出現1結果則為1,0 or 1為1,1 or 0也為1,3 or 4為3,因為3可以理解為1,已經確定了則輸出結果3。not 1為false,not 0為true,not 3為false。

這樣能夠理解了吧。希望能夠幫到被這個問題困惑的人。

3樓:小紅色蜻蜓

77、 表示式 3 or 5 的值為__(3) 真或真返回第乙個真,真或真返真

78、 表示式 0 or 5 的值為___(5) 假或真返真

79、 表示式 3 and 5 的值為__。(5) 真且真返真,返回第二個真。

#and, or:

# 判斷變數是否為0, 是0則為false,非0判斷為true,

# and中含0,返回0; 均為非0時,返回後乙個值,兩個1返回第二個1(兩個真返回第二個真),其餘返回第乙個非0

a=(2 and 0) # 返回0

b=(2 and 1) # 返回1

c=(1 and 2) # 返回2

#1且1返1,1且0返0,0且1返1

print(a)

print(b)

print(c)

# or中, 至少有乙個非0時,返回第乙個非0,

d=(2 or 0) # 返回2

c=(2 or 1) # 返回2

e=(0 or 1) # 返回1

f=(0 or 0) # 返回0,重點記住,or只有 0 or 0 才返回0,兩個0返回第二個0(兩個假返回第二假),其餘返回第乙個非0

#1或1返1,1或0返1,0或1返1

print(d)

print(c)

print(e)

print(f)

python 中,

or 可以理解為找真值演算,從左到右發現真值就返回真值;

如果兩個都是假值,那就返回最後乙個假值。

and 可以理解為找假值演算,從左到右發現假值就返回假值;

如果兩個都是真值,那就返回最後乙個真值。

演算規則簡單歸納一下就是:

or :找真值:

如果有乙個值為真,or 立刻返回第乙個真值;

如果所有值都為假,or 返回最後乙個假值。

and :找假值:

如果有乙個值為假,and 立刻返回第乙個假值;

如果所有值都為真,and 返回最後乙個真值。

(or或假,假裝疑惑,a和b同時是假時才是假。and且行且珍惜,a且b為真時才是真。)(or或假,兩個為假時,返回最後乙個假值。

and且行且珍惜,兩個為真時,返回最後乙個真值。都是返回最後乙個)(假或假才是假,真且真才是真)

(0代表假false,其他數字代表真true)

4樓:匿名使用者

簡單解釋就是:

and -> a and b -> 表示a和b都必須同時滿足才可以or -> a or b -> 表示a或b,兩者滿足乙個,其中任意乙個,就可以了

not a -> 對於a取反 -> a原來是真,則現在是假;a原來是假,則現在是真。

這些,其實和python關係不大,和你對於基本的,程式語言中的邏輯,不理解有關係。

很多語言,都是這個邏輯的。也本身是符合人類的邏輯的。

感興趣的,自己去看:

【教程】python開發入門詳解

(此處不給貼位址,請用google搜標題,即可找到位址的)

python中v和f的區別,python中的rawinput和input的區別

回車符復 r 換行符 n 水平製表符制 t 垂直制bai表符 v 換頁符 f v的效果du的確如你zhi程式裡所顯示那dao樣。f在有些終端下與你現在的效果不同。比如可能會清屏。如果你直接向列印口print,那麼會真的換頁。python 中的raw input 和input的區別 1.這兩個函式均能...

python中的冒號怎麼用,python中函式引數列表中使用的冒號是幹什麼用的

函式,迴圈,bai條件,類du定義等後面都是跟著乙個zhiblock,block需要縮排,dao所以這些語句後版面都有乙個冒號。至於為什麼權這樣子,我們又不是研究理論的。死記硬背就可以了。什麼是乙個block。每個語言裡幾乎都有有。就是一組語句。比如函式體,迴圈體,條件分支,類的定義等等都是乙個bl...

Python3中print和printn 換行的行數,為什麼不一樣

因為預設的print 就是自帶乙個換行 了的 其實是裡面有個引數控制的 print end n 預設就是乙個版換行結尾了。所以你權print n 相當於print n end n 不就是兩個換行了麼?print 只是列印乙個空字元,是一行 print n 列印的是換行符,當然兩行,就和我們在記事本裡...