我想問下python中邏輯與和「and」的區別

2021-04-19 08:34:41 字數 2557 閱讀 5866

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搜標題,即可找到地址的)

邏輯代數中的基本運算,想問下ABCABAC

bc就是b c的意思,在數學裡,用字母表示算式的時候,號可以直接省略,直接寫bc,方程裡也是這樣的 bc就是b c 不是 白痴 哦 bc是b c a b a c a ab ac bc a 1 b c bc a bc 反之,亦然 數字邏輯電路中,基本定律中,結合律a bc a b a c 是怎麼來的?...

邏輯運算中異或和與或怎麼計算,邏輯運算中邏輯與,或,異或的關係

異或運算 兩個值不相同,則異或結果為真。例如 真異或假的結果是真,假異或真的結果也是真,真異或真的結果是假,假異或假的結果是假。與或運算 這個不存在,是不是你筆誤了?接近的答案是 與運算 邏輯乘法。兩個值中,若有一個假則結果為假。或運算 邏輯加法。兩個值種,若有一個真則結果為真。計算機 數字邏輯 數...

我是學習數學與應用數學(非師範)的,我想問下,我這個專業的發展情況

這是一個純理論的專業,除了教書就是搞科研。即使你不是師範生,也不代表你以後不能當老師,前提是你願意!如果你想當老師,就要拿到教師資格證。那你在校期間就要選擇教育學 心理學的課,成績及格後,把成績單列印出來好好儲存,還要考普通話,要達到80分以上。另外就是畢業證書鑑證,等拿到畢業證之後才可以進行。考一...