摘要:另外還有一種數據類型叫做布爾類型。布爾類型布爾類型是計算機中最基本的類型,它是計算機二進制世界的體現,一切都是和。中的布爾類型只有兩種值和。
計算機的本質就是計算,在其內部是0和1的比特位的變化,對外表現就是數據的變化。那么,計算機都能處理什么數據呢?本質上,數據都是以字節(Byte)存儲的,表現上看,它們就是整數、浮點數和字符串等。Python的基本數據類型也不外乎于此。
整數和浮點數就跟數學中的一樣,而字符串就是各種字符的組合。另外Python還有一種數據類型叫做布爾類型(Boolean)。
布爾類型布爾類型是計算機中最基本的類型,它是計算機二進制世界的體現,一切都是0和1。Python中的布爾類型只有兩種值:True和False。(注意:首字母都是大寫,與C++、JavaScript中的小寫有所不同)
布爾類型回答的是是非問題,那么什么情況下是True,什么情況下是False呢? Python里面實現了一個類型對象叫做bool,bool是一個int的子類,內置的True和False就是bool僅有的兩個實例對象。
使用bool我們就可以對對象進行布爾真假判斷:
In [3]: bool(None) Out[3]: False In [4]: bool(0) Out[4]: False In [5]: bool([]) Out[5]: False In [6]: bool(()) Out[6]: False In [7]: bool("") Out[7]: False In [8]: bool({}) Out[8]: False
以上是判斷為假的情況,總結一下為假的情況有:
None, False
數值中的0,?0.0,?0j(虛數),?Decimal(0),?Fraction(0, 1)
空字符串("")、空元組(())、空列表([])
空字典({})、空集合(set())
對象默認為True,除非它有bool()方法且返回False或len()方法且返回0.
布爾運算: and, or, not下面的表列舉了布爾運算的結果,優先級為升序:
運算 | 表達式 | 結果 | 說明 |
---|---|---|---|
或運算 | x or y | 如果x為False則取決于y;如果x為True則不考慮y | (1) |
與運算 | x and y | 如果x為False則不考慮y;如果x為True則取決于y | (2) |
非運算 | not x | 如果x為False則為True,否則為False | (2) |
說明:
(1)or?是一種“短路運算符”,只有當第一個為False時才去驗證第二個。即:兩個變量只要有一個為True則為True。
(2)and也是種“短路運算符”,只有當第一個為True時才去驗證第二個。即:兩個變量都為True時結果才為True。
(3)not的優先級比非布爾運算符底,所以not a == b解釋為not (a == b),并且a == not b是語法錯誤。
In [24]: 1 == not 2 File "", line 1 1 == not 2 ^ SyntaxError: invalid syntax In [25]: not 1 == 22 Out[25]: True
上面講到,or, and, not的優先級是依次遞增的,優先級跟小學數學中先乘除后加減但括號里面的更優先是一樣的。
那么小猿們猜猜下面的代碼會輸出什么:
print("" or "b" and "c")
優先級and大于or,所以先計算and:
(1)先計算"b" and "c"時,"b"是True,則結果取決于"c",因此返回"c"。
(2)再計算"" or "c",""是False,則結果取決于"C",因此返回"c"。
(3)最后打印出:c。
你算對了嗎?
前面提到,布爾值反應的是“是非”,有比較才有是非。Python中有8中比較運算。它們有相同的優先級,比布爾運算的優先級高。比較運算符可以任意的連寫,比如:x < y <=z相當于x < y and y <= z。
下面我們用表格來說明這8種不同的比較運算:
運算 | 含義 |
---|---|
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
== | 等于 |
!= | 不等于 |
is | 是對象 |
is not | 不是對象 |
布爾類型(True, False)表示“是非”,是比較運算的結果,是條件判斷的結果,從而決定程序的流程和分支走向。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43751.html
摘要:的基本數據類型也不外乎于此。數值類型整數浮點數和是中為整數和浮點數保留的關鍵字。另外,布爾類型作為一種整數的子類型表示程序中的是非,它的值有且僅有兩個和。 計算機的本質就是計算,在其內部是0和1的比特位的變化,對外表現就是數據的變化。那么,計算機都能處理什么數據呢?本質上,數據都是以字節(Byte)存儲的,表現上看,它們就是整數、浮點數和字符串等。Python的基本數據類型也不外乎于此...
摘要:布爾值布爾值和布爾代數的表示完全一致,一個布爾值只有兩種值的數據類型可以通過內置的函數查詢,例如還可以用來判斷和的區別在于不會認為子類是一種父類類型。會認為子類是一種父類類型。基本功能是進行成員關系測試和刪除重復元素。 ...
摘要:現在我們開始說編程特性第一條變量和數據類型,賦值和輸出。從廣為流傳的說起,用建立一個新的工程在目錄建一個文件變量和數據類型,賦值和輸出在中,方法是應用程序的入口方法。變量包含三個知識點,新建變量是字符串類型給變量賦值。 用9天入門三門編程語言,有可能嘛,尤其是對沒有基礎的同學來說?對于想學好的編程的人來說,無論從哪一門語言開始入手,語言的本身其實并不是我們最應該的關心的,至少不是作為一...
摘要:天入門三門編程語言,有可能嘛,尤其是對沒有基礎的同學來說對于想學好的編程的人來說,無論從哪一門語言開始入手,語言的本身其實并不是我們最應該的關心的,至少不是作為一個初學者首先關心的。 7天入門三門編程語言,有可能嘛,尤其是對沒有基礎的同學來說?對于想學好的編程的人來說,無論從哪一門語言開始入手,語言的本身其實并不是我們最應該的關心的,至少不是作為一個初學者首先關心的。 網絡上,網友們爭...
摘要:天入門三門編程語言,有可能嘛,尤其是對沒有基礎的同學來說對于想學好的編程的人來說,無論從哪一門語言開始入手,語言的本身其實并不是我們最應該的關心的,至少不是作為一個初學者首先關心的。 7天入門三門編程語言,有可能嘛,尤其是對沒有基礎的同學來說?對于想學好的編程的人來說,無論從哪一門語言開始入手,語言的本身其實并不是我們最應該的關心的,至少不是作為一個初學者首先關心的。 網絡上,網友們爭...
閱讀 3767·2021-09-22 15:17
閱讀 1954·2021-09-22 14:59
閱讀 2351·2020-12-03 17:00
閱讀 3213·2019-08-30 15:55
閱讀 490·2019-08-30 11:23
閱讀 3492·2019-08-29 13:56
閱讀 523·2019-08-29 12:54
閱讀 2261·2019-08-29 12:49