1. 程式人生 > >4 常用數值型別(int,float,bool)操作

4 常用數值型別(int,float,bool)操作

參考:

Python 數值型別包括整型(integer),浮點型(floating point number)和複數(complex number),並且,布林型(boolean)是整型的子類

其中,最常用的數值型別包括整型,浮點型和布林型,下面介紹它們的定義和使用方法

主要內容:

  1. 數值型別轉換
  2. 整型(int),浮點型(float)和布林型(bool)的通用操作
  3. 整型(int),浮點型(float)的通用操作
  4. 整型(int)位運算

數值型別轉換

Python 支援整型(int),浮點型(float)和布林型(bool)的轉換

  • 精度低的型別可以自動轉換為精度高的型別,所以,布林型(bool

    )可以轉換為整型(int),整型(int)可以轉換為浮點型(float)。示例如下:

    這裡寫圖片描述
  • 對於精度高的型別轉換為低精度的型別,可能會損失精度。示例如下:

    這裡寫圖片描述

整型(int),浮點型(float)和布林型(bool)的通用操作

整型(int),浮點型(float)和布林型(bool)均支援以下操作(其操作方法按優先順序升序排列,數值運算(numeric operation)優先順序高於比較操作(comparison operation

這裡寫圖片描述
  • 首先是基本四則運算子:加(+),減(-),乘(*)和除(/)操作

    這裡寫圖片描述

    Note:布林型型別的運算(除了除法)得到的是整型結果

    Note:除法(/

    )操作得到的商是浮點型(float

  • 操作符(//)同樣執行除法操作,不同的是,它得到的是商的整數部分;操作符(%)得到的是除法操作的餘數

    這裡寫圖片描述
  • 方法 abs() 得到的是輸入數值的絕對值

    這裡寫圖片描述
  • 方法 divmod() 得到的是一個 tuple 物件,儲存輸入兩個數值之間除法操作得到的整數商和餘數

    這裡寫圖片描述
  • 求取 xy 次方有兩種方式,使用方法 pow(),或者使用操作符 **

    這裡寫圖片描述

整型(int),浮點型(float)的通用操作

整型(int),浮點型(float)還支援以下操作

這裡寫圖片描述

方法 round() 保留了小數精度位數,預設是保留 0 位小數精度,即僅保留整數

這裡寫圖片描述

另外 3 個方法需要先匯入 math

方法 math.trunc 需要輸入一個數值,返回和該數值最接近的趨向於 0 的整數

這裡寫圖片描述

方法 math.floor 返回小於等於該數值的整數;方法 math.ceil 返回大於等於該數值的整數

這裡寫圖片描述

整型(int)位運算

位運算如下所示(按優先順序升序排列):

這裡寫圖片描述

Note:位運算子的優先順序均低於數值運算子,但是高於比較運算子;其中,一元操作符(~)的優先順序和其它一元操作符一致(比如,正 + 和 負 -

設變數 x = 13,其二進位制格式為 1101, 變數 y = 7,其二進位制格式為 111

首先是或操作,使用符號 |,所以 x | y = 1101 | 111 = 1111 = 15

接著是異或操作,使用符號 ^,所以 x ^ y = 1101 | 111 = 1010 = 10

然後是與操作,使用符號 &,所以 x & y = 1101 & 111 = 101 = 5

最後是按位取反操作,使用符號 ~,所以 ~x = -x-1 = -14

這裡寫圖片描述

n = 3

運算 x << n 表示將二進位制值 x 向左移動 n 位,所以 x << n = 1101 << 3 = 1101000 = 104

同理,運算子 >> 將值 x 向右移動 n 位,所以 x >> n = 1101 >> 3 = 1

這裡寫圖片描述

Note:位運算返回的仍是整數

Note:移位操作中移動的位數必須是正數,否則會丟擲 ValueError 異常