- 例解Python:Python編程快速入門踐行指南
- 張志剛
- 1338字
- 2021-02-22 11:14:51
2.1 數字類型
2.1.1 基本數字類型
Python基本的數字類型有以下幾種。
? int:有符號整數。
? bool:布爾值。
? float:浮點數。
? complex:復數。
簡單來說,大致只需要知道,數字有正負之分,有的有小數點,有的沒有小數點,這些就夠了。
布爾值就是真或假,它也是整數類型,真值用True表示,對應數字1;假值用False表示,對應數字0。注意這兩個單詞的大小寫。
浮點數就是有小數點的數,而復數基本上是平時用不到的。
2.1.2 不同進制的整數數字表示方式
我們平時使用的數字主要是十進制數,不加任何說明,Python也默認采用十進制數輸出。如果使用的是八進制、十六進制、二進制數,則需要在數字前面加上對應的前綴。
? 以0o或0O(數字0和字母O)開頭的數字代表八進制數。
? 以0x或0X開頭的數字代表十六進制數。
? 以0b或0B開頭的數字代表二進制數。
注意,不管輸入的是何種格式,Python均默認采用十進制數輸出。代碼如下:


也許你會說你對數制轉換不熟悉,但實際上你經常在做數制的轉換,而且能夠非常熟練地轉換,這個轉換是對時間進行的。例如,1周零1天是幾天?2年零2個月共有幾個月?2小時3分4秒是多少秒?你都能熟練而準確地給出答案。按周計算是七進制,按年計算是十二進制,按小時計算就是六十進制。那么如果一周有8天,1周零1天有多少天呢?一年有16個月,2年零3個月是多少個月呢?這就很明白了吧。
2.1.3 算術運算符
標準運算符有加(+)、減(-)、乘(*)、除(/)、求模(%)和冪(**)運算符。這些運算符是我們平時經常用到的,有些無須特別說明。首先需要解釋的是除法,先看一個例子:

這里的除法是“真正的除法”。如果只想得到整數,不出現小數同時舍棄余數,則可以采用如下的形式:

要想得到余數,采用模運算(求余):

如果既想得到商又想得到余數,則需要借助內建函數:


冪運算(**)用于計算一個數的N次方,下面的例子是求3的4次方:

2.1.4 比較運算符
比較運算符有小于(<)、小于等于(<=)、大于(>)、大于等于(>=)、等于(==)和不等于(!=)。
判斷是否相等的符號采用了雙等號,如果錯誤地寫成了一個等號,那么Python會認為是賦值操作符,而不是比較操作符。
Python還支持連續比較:

比較操作最終返回的結果為真或假,上述的兩個例子等價于:

第二個連續比較的例子,語法沒有任何錯誤,但是不同的人理解起來不一樣,會有歧義,也就是代碼的可讀性不好。所以推薦做法是全部采用小于號或者全部采用大于號。
2.1.5 邏輯運算符
邏輯運算符有表示與的and、表示或的or和表示非的not(即常說的【與或非】操作)。
and兩邊表達式的結果都為True,最終結果才為True:

or兩邊表達式的結果只要有一方是True,最終結果就是True;兩邊全為False,最終結果才為False:

not將True變為False,將False變為True:

需要特別說明的是,各種運算符都有優先級高低之分。算術運算符的優先級高于比較運算符,比較運算符的優先級高于邏輯運算符。同一級別內的運算符也有優先級高低之分,如算術運算符中,乘除法的優先級比加減法高。然而,優先級高低的順序并不一定必須記住,更好的做法是使用括號:既省去了記憶的麻煩,又提高了可讀性。如下所示:

在上面的表達式中,not的優先級比or高,先計算not 10 < 20,再與10 < 30的結果做or運算。如果寫成下面的樣子,則可讀性會更好一些:

同樣的道理,下面的四則運算中,冪運算的優先級最高:

如果寫成下面的樣子,則可讀性會更好一些:
