python與或運算
❶ python教程:第19篇 邏輯運算符
我們在高一時學習過命題的邏輯運算:與、或、非,在計算機科學中,其運算規則也是類似的(基本原理相同,但操作數與返回結果有所不同),Python也不例外。
在Python中,與用and、或用or、非用not表示。邏輯運算符一般用於操作返回值為bool類型的表達式,以表達式的值True(真)和False(假)為例。其運算規則總覽如下:
需要特別注意的是,在Python中,雖然邏輯運算符的操作數一般是運算結果為邏輯值的表達式,但也可以是運算結果為數值、字元串、元組、列表、集合、字典等類型的表達式。返回值也不一定是邏輯(bool)類型。而有些教程錯誤地稱只能操作bool類型的表達式以及始終返回bool類型。
我們可以用兩個not查看某種數據等價的邏輯值,下面是一些常見數據類型的等價規則:
一、數值除了0視為False,其餘數值(包括小數、負數、復數)均視為True:
二、字元串除了空字元串視為False外,其餘均視為True(包括空格、製表、換行、回車等空白符,也包括字元串'False'):
三、對於元組、列表、集合、字典也是如此,空的視為False,非空的均視為True,即使其中只有一個值為False或0的數據:
有一種情況容易產生誤解,就是使用小括弧將False包圍起來,這其實也是表示bool值,而不是元組,元組是使用小括弧包圍的數據列表,但是如果只有一個成員,數據後面要加一個逗號,正如上述示例中所示那樣,下面的示例顯示了小括弧包圍的False的數據類型:
四、對於一個類也是如此,非空類視為True(註:無法創建什麼都不包含的空類):
五、None視為False:
總結一下就是: 數值0、空字元串、空元組、空列表、空集合、空字典以及None,均視為邏輯值False,其餘均視為True。
需要注意的是,邏輯運算符的返回值不一定是bool類型。
了解了非bool類型的操作數等價的邏輯值之後,還需要了解邏輯運算符的完全運算規則,才能得知具體會返回什麼值。
and為邏輯與(也稱邏輯且),其使用語法如下:
表達式A and 表達式B
其中操作數表達式A和表達式B一般均為邏輯值。但也可以是數值、字元串、元組、列表、集合、字典、對象等類型。
其運算通用規則為: 如果 表達式A 的運算結果等價於False,返回其運算結果,不再計算表達式B。否則返回 表達式B 的運算結果。
對於最常用的兩個操作數均為邏輯值的情況,只有當兩個操作數均為True的情況下為True,其餘情況均為False,以下是所有四種可能情況的運行示例:
其中兩個操作數也都可以是非邏輯值。
當第1個操作數結果等價於False時,比如False、0、None、空字元串、空元組、空列表、空集合、空字典等,整個邏輯表達式返回第1個操作數,注意,返回的是操作數的原始值,而不是等價值False,下面是運行示例(None表示什麼也沒有,所以沒有輸出。set()返回空集合):
當第1個操作數等價於True時(非數值0、非空字元串等都等價於True),則不管第2個表達式的返回值是什麼,都將返回第2個值,當然這時第2個表達式不能有語法錯誤:
or為邏輯或,其使用格式如下:
表達式A or 表達式B
其中操作數表達式A和表達式B與and中的操作數含義相同。
其運算通用規則為: 如果 表達式A 的運算結果等價於True,返回其運算結果,不再計算表達式B。否則返回 表達式B 的運算結果。 其與and的區別在於,or當表達式A為True則返回表達式A,and當其為False時返回表達式A。
以上面and的示例為模板,可以看到,or與and的返回值正好相反。
與and類似,當表達式A相當於True時,表達式B也不會計算:
下面是常見的兩個操作數均為邏輯值的情況,or運算符的四種可能情況的運行示例(除非兩個值都是False時返回False,其餘情況返回True):
not為邏輯非,其使用格式如下:
not 表達式
其運算規則為: 當 表達式 的運算結果為False、0、None、空字元串、空元組、空列表、空集合、空字典時,返回True。其餘情況均返回False。
下面是一些不同數據類型的運算示例:
與and和or不同的是,not的返回值始終是bool類型,即只有True和False兩種可能的取值。
所以,可以使用not not 表達式來查看一個非邏輯值是等價True還是False,正如上文非邏輯操作數等價的邏輯值中所示的那樣。
當然,not最常用的用法還是逆轉邏輯值,下面是兩種可能情況的運行示例:
邏輯運算符優先順序not>and>or。
下面的示例證明and先於or運算:
下面的示例證明not先於or運算:
下面的示例證明not先於and運算:
另外,所有的邏輯運算符都比元組逗號分隔符的優先順序要高,以and為例,比如下面是一個元組:
下面的例子中:
先計算了3 and 4,然後再組合成了元組,相當於:
而不是:
not與or的優先順序也比其要高,下面是示例:
所以雖然元組有時可以省略小括弧,但在與邏輯運算符運算時,元組請始終使用小括弧。
這篇文章的整理與編寫花費了我近十小時時間,從上午寫到晚上。是我目前最具匠心的文章,如果說以前我的文章只適合初學者,偶爾超水平發揮才適合中級學者,那麼這篇文章我感覺對高水平人員也有重要的參考意義。
就我目前所知,我所寫的教程,在全網找不到第二個比它更優秀的了,當然,每個人心中都有一桿稱,不同讀者可能也有不同的際遇,我能做的只是做好自己。
所以,如果你覺得此文不錯,可以分享給你身邊的朋友、同學、同事、同鄉,世界很大也很小,很多東西,初見只能依靠緣分。而再見就需要你的主動了,緣分天註定,努力亦可改變命運。
Python教程:第11篇 變數賦值
Python教程:第17篇 比較運算符
Python教程:第18篇 算術運算符
❷ python-邏輯運算和布爾值
喬治·布爾(George Boole,1815.11.2~1864),1815年11月2日生於英格蘭的林肯。19世紀最重要的數學家之一,出版了《邏輯的數學分析》 ,這是它對符號邏輯諸多貢獻中的第一次。
布爾的邏輯代數理論建立在兩種邏輯值「真True」、「假False」和三種邏輯關系「與AND」、「或OR」、「非NOT」。這吵判大種理論為數字電子計算機的二進制、形關邏輯元件和邏輯電路的設計輔平了道路。
馮·諾依曼奠定了現代計算機的基礎,被世人尊為「計算機之父」,但在談到他的理論與構思時,他謙虛地說,這些理論與構思的基礎來自於英國數學家圖靈和布爾的思想。
谷歌在2015年的網頁紀念了布爾誕辰200周年。
布爾值
計算機的邏輯判斷,只有兩種結果,就是True(英文意思是「真」)和False(英文意思是「假」)
在Python中:
只要數字零、空對象以及特殊對象None都被認作是假,其他為真
用 bool() 函數來查看一個數據會升豎被判斷為真還是假
Python中有三種布爾表達式運算符:
x and y (兩者都)
x or y (兩者的其中之一)
not x (不)
not True就等於False,not False就等於True
實例:
True
False
True
False
布爾值操作符優先順序為 not >and> or
x是True,無論y and z 的結果是什麼,這個語句的沖轎結果都是True,這就是短路保護,也叫說惰性計算,懶得計算後面的。
其實記得布爾值操作符優先順序為 not >and> or即可。
❸ Python用於表示邏輯或者運算的關鍵字
Python的邏輯運算符有and(邏輯與,兩者都為真才為真)、not(邏輯非,對當前邏輯取反)、or(邏輯或,兩者中有一為真即為真)三個。
❹ Python其實很簡單 第六章 基本運算
Python中將算式稱為表達式。數學上算式是用數學語言、數學符號來表達某種關系、某種運算、某種性質的,同樣的,在Python中,表達式也是用運算符將各種數據類型的數據連接起來。
數據的類型在前面已經介紹過了,下面介紹一些最常用到的運算符。
6.1算術運算
算術運算符是用於處理四則運算的運算符,常用的算術運算符如下表所示。
算術表達式就是用算術運算符將各種類型的數據連接起來,算術運算的規則和數學中一致。除了數學中用到的四則運算符「 、-、*、/ 」外,要特別注意「取模(%)」、「冪(**)」、「整除(//)」的用法。
6.2給變數賦值
最常用的賦值運算符是「=」,「a=b」的意思就是將值b賦值給變數a。
Python中還一些帶有運算功能的賦值方法,含義為「先計算,後賦值」如:
以下假設變數:a=10,b=20
「+=」,讀作「加賦值」,如a+=b,相當於a=a+b, 則a被賦值為30;
「-=」,讀作「減賦值」,如a-=b,相當於a=a-b, 則a被賦值為-10;
「*=」,讀作「乘賦值」,如a*=b,相當於a=a*b, a被賦值為200;
「/=」,讀作「除賦值」,如a/=b,相當於a=a/b, a被賦值為0.5;
「%=」,讀作「取余數賦值」,如a%=b,相當於a=a%b, a被賦值為10;
「**=」,讀作「冪賦值」,如a**=b,相當於a=a**b, a被賦值為100000000000000000000;
「//=」,讀作「取整數賦值」,如a//=b,相當於a=a//b, a被賦值為0;
6.3關系運算
關系運算符,也叫比較運算符,用於比較兩個變數或表達式運算結果之間的大小關系。關系表達式是用關系運算符將變數或表達式連接起來的表達式,其運算結果為一個布爾值,即True或False。
Python3.0的關系運算符有:「大於>」、「小於=」、「小於或等於<=」。
還有一個特殊的關系運算符「值1變數值2」,如:
>>> a=10
>>> b=20
>>> c=15
>>> print(a<b<c) p=""> </b<c)>
False
>>> print(a<c<b) p=""> </c<b)>
True
6.4邏輯運算
邏輯運算符包括「邏輯與and」、「邏輯或or」、「邏輯非not」,具體用法見下表。
以下假設變數 a 為 10, b為 20:
在上表中,變數a和變數b都是非0的數,被當做值為True的變數參與邏輯運算。
❺ python中常用的運算符
python常見的運算符
1.算數運算符
算術運算符用於執行加減乘除、取余等基本數學運算,其中為了方便輸入用斜杠"/"表示除號。和其它編程語言中兩個整數相除結果為整數不同,Python中兩個整數相除結果為小數,如果需要獲取整除結果則需要使用兩個斜杠"//"。Python中用兩個「*」號表示求冪,例如 2**3=8,3**2=9。
①+ 名稱:加
可用於對數字,序列等數據操作 。對於數字進行求和;其他的是連接
②- 名稱 :減 只是求差
③* 名稱:乘法
可用於數字、序列等數據進行操作;數字是求積;其他類型進行連續性的操作
④/ 名稱:除法 求商
⑤% 名稱:取余 求兩個數字除法運算的余數
⑥** 名稱:冪 求a的b次冪
⑦// 名稱:地板除法 求商取整
2.關系運算符
關系運算符用於比較兩個操作數之間的大小關系,返回值為True或False。
① == 名稱:等於 ② != 不等於 ③ > 大於 ④ < 小於 ⑤ <= 小於等於 ⑥ >= 大於等於
注意:1. 一個=表示賦值,兩個==表示判斷兩個對象是否相等
2.關系運算符可以連用
3.邏輯運算符
邏輯運算符用於判斷多個條件是否滿足某一要求。與其他編程語言不同的是:Python中用 not 表示邏輯非,and 表示邏輯與, or 表示邏輯或。
① and 名稱:邏輯與 只有當and兩邊的之都為 True時,結果為True,否則結果均為False
② or 名稱:邏輯或 只有當or兩邊的之都為False時,結果為False,否則結果均為True
③not 名稱:邏輯非 結果與原來的結果相反,總是。
注意:邏輯與和了邏輯或在進行求解期間 ,總是從左到右一次執行 ,如果在某一步可以確定結果,那麼將不在執行後面的表達式。
4.賦值運算符
運算符 += -= *= /= %= **= //= &= |= ^= <<= >>=
名稱 加賦值 減賦值 乘賦值 除賦值 取余賦值 冪賦值 地板除法賦值 位與賦值 位或賦值 位異或賦值 左移賦值 右移賦值
例子 a +=b a -= b a *= b a /= b a %= b a **= b a //= b a &= b a |= b a ^= b a <<= b a >>= b
說明 a = a + b a = a - b a = a * b a = a / b a = a % b a = a ** b a = a // b a = a & b a =a | b a = a ^ b a = a << b a = a >> b
5.身份運算符
in 例子:x in y 表示y中是否含有x,如果有則返回True,沒有責則返回False
not in 例子: x not in y 表示y中是否含有,沒有返回位True,有返回False
❻ Python邏輯運算符and
and和or表達式的值是第一個能決定整個表達式是否成立的那個操作數的值。舉例:
3 and 4:第一個操作數3為真,但不能保證and成立,還要看第二個操作數4;4也為真,此時可以確定and一定成立,因此這個表達式的值是4。
'hello' and [] and 'world':第一個操作數'hello'為真,但不能保證and成立;第二個操作數[]為假,此時可以確定and一定不成立,因此這個表達式的值是[]。
'a' or 'b' or 'c' or 'd':第一個操作數a為真,此時可以確定or一定成立,因此這個表達式的值是'a'。
1 and 2 or 3 and 4:and的優先順序高於or,因此先求左邊的1 and 2,這個子表達式的值是2,2為真,可以確定or一定成立,因此整個表達式的值是2。
❼ python-邏輯運算:not\and\or和布爾值:True\False
這東西在每一個語言都有,and or not 對應與、或、非三種邏輯運算;True和False是bool值,即真和假。
邏輯運算和布爾值經常用於if判斷語句、循環語句的條件語句。
首先作為控制條件應該是一個布爾值,即真和假——True和false。
python的內置類——布爾類,只有兩個實例:True和false。對於一般數字而言,0是False,非0是True;對於序列和容器類型,如列表、字典、字元串等,空為False,非空為True。
所以就有了這樣的用法:
輸出:1 為True
輸出: 0 為 False
輸出:a = '字元串'
這了可以看出一個實例本身可以作為控制條件,這是因為,解釋器會先把這個實例轉換為bool類型,然後根據這個bool類型執行程序。即bool(a) = True、bool(b) = False。
但是只用這樣的方式控製程序顯然不夠,比如我希望a為空,b為非空的時候,我輸出「我天下第一」,這怎麼辦?
如果不用not and or 就會寫成這樣:
輸出:我天下第一
可以把a 看成False,b看成True。
從這里我們可以看到,我們用了兩層if--else語句來判斷a為空,b為非空的情況,那麼我用邏輯運算呢?
輸出:我天下第一
一樣的:可以把a 看成False,b看成True。那麼not a and b的意思就是:not False and True
這時候就是邏輯運算符的優先順序的問題,這可以借鑒C語言的那本書《C程序設計》第五版的第92頁
!非
算數運算符
關系運算符
&& 和 ||
賦值運算符
運算優先順序從上到下,越來越低。
這是C語言里的,在python里就是:
not -------------->高
and 和 or ---------->低
所以我們先算not
於是 not False and True 就成所以了True and True這就很清楚了結果為True,所以「我天下第一」。
所以我們就可以總結出:
1.先將實例變為布爾值
2.在計算所有的not
3.根據語言特性,從左到右或者從右到左計算邏輯運算結果。
當然在python中是從左到右。
and 和 or 運算具有短路保護!什麼意思呢?看一個栗子
1 or a
or的左邊是1也就是True,根據or的運演算法則,只要有一個真則為真,所以不管a是真還是假,結果都是真。
0 and a
and 左邊為0,為False,同樣,and只要有一個為假則為假,所以不管a是真還是假,結果都是假。
所以and 和 or 的結果可以根據第一個操作數的值來確定,那麼他就不會對第二個操作數進行運算。
這個功能用起來要很小心,不然很可能會出現想不到的結果。
這里會輸出什麼呢?
輸出:我天下第一
因為x是True,無論y and z 的結果是什麼,這個語句的結果都是True,這就是短路保護,當然也有的人說惰性計算。
我覺得迭代器、生成器那個才叫惰性計算。
❽ python運算符
介紹邏輯運算符的種類以及使用方法,例子使用pycharm解釋器。
電腦:華為MateBook
系統:Windows10
軟體:pycharm解釋器1.0
1、第一個,邏輯與and,就是並且的意思;寫法是:a and b (a,b為python對象),使用方法:如果a為False,a and b返回False,否則它返回b的計算值。舉例如圖,and左右沒用其他邏輯計算僅數字的情況,(我們知道python中,數字0即為Fasle,其他數字為True)。
❾ python中and、or和not 三個邏輯運算符,一直理解不了,求幫助!
『and』、『or』和『not』的優先順序是not>and>or
❿ python邏輯運算符有哪些
邏輯運算符用於組合多個條件測試語句。假設「我今年18歲」和「我身高2米」這兩個語句,前一個語句是真的,後一個語句是假的,因此,「我今年18歲,並且我身高2米」這個語句是假的。其中,「並且」可以認為是邏輯運算符。Python中有三種邏輯運算符,分別是and、or和not。
一、邏輯運算符and
在某些場景下,需要同時檢查兩個甚至更多的條件。假設某運動隊招收運動員的要求是年齡不得低於14周歲,同時身體健康,使用邏輯運算符and來判斷是否符合要求:
在布爾表達式「(math >= 95 and chinese > 85) or (math >= 85 and chinese > 90)」中,使用or運算符連接的兩個布爾表達式「math >= 95 and chinese > 85」和「math >= 85 and chinese > 90」只要有一個值為True,返回值就為True。而對於布爾表達式「math >= 95 and chinese > 85」和「math >= 85 and chinese > 90」,都是使用and運算符連接的,故and運算符連接的兩個布爾表達式的值必須都為True,返回值才為True。小明的數學成績是98分,語文成績是88分,布爾表達式「math >= 95 and chinese > 85」的值為True,「math >= 85 and chinese > 90」的值為False,因此,整個布爾表達式的值為True,列印「小明獲得家庭獎學金!」。
關於深度學習的基礎問題可以看下這個網頁的視頻教程,網頁鏈接,希望我的回答能幫到你。