這東西在每一個語言都有,and or not 對應與、或、非三種邏輯運算;True和False是bool值,即真和假。
創(chuàng)新互聯長期為千余家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態(tài)環(huán)境。為廣河企業(yè)提供專業(yè)的網站設計、成都網站設計,廣河網站改版等技術服務。擁有十載豐富建站經驗和眾多成功案例,為您定制開發(fā)。
邏輯運算和布爾值經常用于if判斷語句、循環(huán)語句的條件語句。
首先作為控制條件應該是一個布爾值,即真和假——True和false。
python的內置類——布爾類,只有兩個實例:True和false。對于一般數字而言,0是False,非0是True;對于序列和容器類型,如列表、字典、字符串等,空為False,非空為True。
所以就有了這樣的用法:
輸出:1 為True
輸出: 0 為 False
輸出:a = '字符串'
這了可以看出一個實例本身可以作為控制條件,這是因為,解釋器會先把這個實例轉換為bool類型,然后根據這個bool類型執(zhí)行程序。即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
這時候就是邏輯運算符的優(yōu)先級的問題,這可以借鑒C語言的那本書《C程序設計》第五版的第92頁
!非
算數運算符
關系運算符
和 ||
賦值運算符
運算優(yōu)先級從上到下,越來越低。
這是C語言里的,在python里就是:
not --------------高
and 和 or ----------低
所以我們先算not
于是 not False and True 就成所以了True and True這就很清楚了結果為True,所以“我天下第一”。
所以我們就可以總結出:
1.先將實例變?yōu)椴紶栔?/p>
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,這就是短路保護,當然也有的人說惰性計算。
我覺得迭代器、生成器那個才叫惰性計算。
0作為布爾值使用就相當于False,非0作為布爾值使用就相當于True。
如這個例子:
n=0
#輸出是:
#0相當于False
print("0相當于True" if n else "0相當于False")
bool型函數指的是返回值為bool類型的函數,其調用方式和int 型函數沒有太大的區(qū)別。
bool型變量的值只有 真 (true) 和假 (false)。bool可用于定義函數類型為布爾型,函數里可以有 return true; return false 之類的語句。
bool為布爾型用作邏輯判斷
BOOL在windef.htypedef int BOOL;
在wtypes.htypedef long BOOL;
擴展資料:
bool取值false和true,0為false,非0為true。(例如-1和2都是true)。
如果數個bool對象列在一起,可能會各占一個Byte,這取決于編譯器。
BOOL是微軟定義的typedef int BOOL(在windef.h中),0為FALSE,1為TRUE。(-1和2既不是TRUE也不是FALSE)。
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
布爾型變量bool
布爾型變量的值只有 真 (true) 和假 (false)。
布爾型變量可用于邏輯表達式,也就是“或”“與”“非”之類的邏輯運算和大于小于之類的關系運算,邏輯表達式運算結果為真或為假。
bool可用于定義函數類型為布爾型,函數里可以有 return TRUE; return FALSE 之類的語句。
參考資料:百度百科:bool函數
python的語法就是編寫python程序時需要遵循的一些規(guī)則,以及一些數據的使用方式,python基本語法包括基本數據類型、布爾值、函數、循環(huán)語句、條件判斷、類、文件操作、模塊等。
python語法優(yōu)點:
簡單:Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣。它使你能夠專注于解決問題而不是去搞明白語言本身。
易學:Python極其容易上手,因為Python有極其簡單的說明文檔。
速度快:Python 的底層是用 C 語言寫的,很多標準庫和第三方庫也都是用 C 寫的,運行速度非???。
免費、開源:Python是FLOSS(自由/開放源碼軟件)之一。使用者可以自由地發(fā)布這個軟件的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用于新的自由軟件中。FLOSS是基于一個團體分享知識的概念。
高層語言:用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內存一類的底層細節(jié)。
喬治·布爾(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
布爾值操作符優(yōu)先級為 not and or
x是True,無論y and z 的結果是什么,這個語句的結果都是True,這就是短路保護,也叫說惰性計算,懶得計算后面的。
其實記得布爾值操作符優(yōu)先級為 not and or即可。
Python提供了bool類型來表示真(對)或假(錯),bool類型就是用于代表某個事情的真(對)或假(錯),如果這個事情是正確的,用 True(或 1)代表;如果這個事情是錯誤的,用 False(或 0)代表。