Python 簡易手冊

單元 6 - 數字型態

整數型態共有三種,分別是整數 (integer) 、浮點數 (floating point number) 及複數 (complex)

種類識別字
整數int
浮點數float
複數complex

整數的字面常數 (literal) 就是直接寫出來的阿拉伯數字,浮點數則是帶有小數點的阿拉伯數字,複數分成實部及虛部,實部或虛部可以是整數或浮點數,虛部的數字結尾必須加上 jJ

  
  
  
a = 1
b = 2.3
c = 4 - 5j

型態的識別字 (identifier) 也就是類別 (class) 名稱,可以直接當作內建函數 (built-in function) 使用,用做型態轉換

  
  
  
d = int(b)
e = float(a)
f = complex(b)

不過要注意複數不能直接轉換成整數或浮點數,但是整數或浮點數可以直接轉換成複數,將以上程式碼加上執行部分,完整程式如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# 設定數字型態的變數
a = 1
b = 2.3
c = 4 - 5j

# 轉換型態
d = int(b)
e = float(a)
f = complex(b)

# 印出轉換後的數值
print(d)
print(e)
print(f)

# 檔名: num_demo.py
# 說明: 《Python簡易手冊》的範例
# 網址: http://kaiching.org
# 作者: Kaiching Chang
# 時間: 2024 年 2 月

執行結果如下

> python num_demo.py
2
1.0
(2.3+0j)
>

數字型態有如下共通計算與操作方式

操作說明
x + y回傳 x 加 y 的和
x - y回傳 x 減 y 的差
x * y回傳 x 乘 y 的積
x / y回傳 x 除 y 的浮點數商
x // y回傳 x 除 y 的整數商,也就是做整數除法
x % y回傳 x 除 y 的餘數
x ** y回傳 x 的 y 次方
-x回傳 x 的負值
+x回傳 x 的正值
abs(x)回傳 x 的絕對值
c.conjugate()回傳 x 的共軛複數
divod(x, y)回傳 x 除 y 的商、餘數組成的序對
pow(x, y)回傳 x 的 y 次方

舉簡單例子如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 設定計算的變數
a = 2
b = 10

# 印出 a 除 b 的商與餘數
print(divmod(a, b))

# 印出 a 的 b 次方
print(pow(a, b))

# 檔名: num_demo2.py
# 說明: 《Python簡易手冊》的範例
# 網址: http://kaiching.org
# 作者: Kaiching Chang
# 時間: 2024 年 2 月

執行結果如下

> python num_demo2.py
(0, 2)
1024
>

整數也可以用二進位、八進位及十六進位表示,二進位數字的字面常數以 0b 開始,八進位以 0o 開始,十六進位以 0x 開始,如下例變數 abc 都是整數 62

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# 設定不同進位的相同數字
a = 0b111110
b = 0o76
c = 0x3e

# 印出 a 與 b 是否相等
print(a == b)

# 印出 b 的 c 是否相等
print(b == c)

# 檔名: num_demo3.py
# 說明: 《Python簡易手冊》的範例
# 網址: http://kaiching.org
# 作者: Kaiching Chang
# 時間: 2024 年 4 月

執行結果如下

> python num_demo3.py
True
True
>

內建函數 bin() 會回傳引數的二進位字串, oct() 回傳引數的八進位字串, hex() 回傳引數十六進位字串。

整數能用位元的方式進行計算,也就是以二進位表示數字,每個位元 0 或 1 進行計算,有如下的位元運算子 (bitwise operator) , xyn 都是整數

操作說明
x | y逐位元計算 x 或 y
x ^ y逐位元計算 x 互斥或 y
x & y逐位元計算 x 且 y
x << nx 向左位移 n 位元
x >> nx 向右位移 n 位元
~xx 逐位元反轉

單元 16 - 位元運算子會詳細介紹位元運算子。

整數型態有如下方法 (method) , x 為整數,以 int 開頭的是類別方法 (class method)

操作說明
x.bit_length()回傳 x 二進位形式的位元長度
x.bit_count()回傳 x 二進位形式中 1 數量
x.to_bytes(length=1, byteorder='big', *, signed=False)回傳 x 的 bytes 型態
int.from_bytes(bytes, byteorder='big', *, signed=False)從 bytes 型態引數轉換成整數
x.as_integer_ratio()回傳 x 最接近的整數比例
x.is_integer()判斷 x 是否為整數

浮點數型態則有如下方法, x 為浮點數,以 float 開頭的是類別方法

操作說明
x.as_integer_ratio()回傳 x 最接近的整數比例
x.is_integer()判斷 x 是否為整數
x.hex()將 x 轉換成十六進位形式字串
float.fromhex(s)將浮點數十六進位形式字串 s 轉換成浮點數

這裡浮點數的十六進位字串是指浮點數在電腦中的儲存方式。

參考資料

上一頁 單元 5 - 資料型態
回 Python 簡易手冊 首頁
下一頁 單元 7 - 關鍵字
回 Python 教材首頁
回程式語言教材首頁