Python 數字 (Number)
Python 支援多種數字型別:整數 (int)、浮點數 (float) 和複數 (complex)。
整數 int
整數是沒有小數點的數字,可以是正數、負數或零:
a = 10
b = -5
c = 0
print(type(a)) # <class 'int'>
Python 的整數沒有大小限制,可以處理非常大的數字:
big_number = 123456789012345678901234567890
print(big_number)
不同進制表示
# 二進制(0b 開頭)
binary = 0b1010
print(binary) # 10
# 八進制(0o 開頭)
octal = 0o17
print(octal) # 15
# 十六進制(0x 開頭)
hexadecimal = 0xFF
print(hexadecimal) # 255
浮點數 float
浮點數是有小數點的數字:
a = 3.14
b = -0.5
c = 2.0
print(type(a)) # <class 'float'>
科學記號
a = 1.5e3 # 1.5 × 10³ = 1500.0
b = 2.5e-2 # 2.5 × 10⁻² = 0.025
print(a) # 1500.0
print(b) # 0.025
浮點數精度問題
浮點數在電腦中是以二進制儲存,某些十進制小數無法精確表示:
print(0.1 + 0.2) # 0.30000000000000004
print(0.1 + 0.2 == 0.3) # False
如果需要精確的小數計算,可以使用 decimal 模組:
from decimal import Decimal
a = Decimal('0.1')
b = Decimal('0.2')
print(a + b) # 0.3
複數 complex
複數由實部和虛部組成,虛部用 j 表示:
a = 3 + 4j
print(type(a)) # <class 'complex'>
print(a.real) # 3.0(實部)
print(a.imag) # 4.0(虛部)
數字運算
a = 10
b = 3
print(a + b) # 13(加法)
print(a - b) # 7(減法)
print(a * b) # 30(乘法)
print(a / b) # 3.333...(除法,結果是 float)
print(a // b) # 3(整數除法)
print(a % b) # 1(取餘數)
print(a ** b) # 1000(次方)
數學函數
內建函數
print(abs(-5)) # 5(絕對值)
print(round(3.7)) # 4(四捨五入)
print(round(3.14159, 2)) # 3.14(四捨五入到小數第 2 位)
print(pow(2, 3)) # 8(次方,等同於 2 ** 3)
print(max(1, 5, 3)) # 5(最大值)
print(min(1, 5, 3)) # 1(最小值)
math 模組
import math
print(math.sqrt(16)) # 4.0(平方根)
print(math.ceil(3.2)) # 4(無條件進位)
print(math.floor(3.8)) # 3(無條件捨去)
print(math.pi) # 3.141592653589793
print(math.e) # 2.718281828459045
print(math.log(10)) # 2.302...(自然對數)
print(math.log10(100)) # 2.0(以 10 為底的對數)
print(math.sin(math.pi / 2)) # 1.0
型別轉換
# 轉換為整數
print(int(3.7)) # 3(小數部分直接捨去)
print(int("42")) # 42
print(int("10", 2)) # 2(將二進制字串轉為整數)
# 轉換為浮點數
print(float(10)) # 10.0
print(float("3.14")) # 3.14
# 轉換為複數
print(complex(3, 4)) # (3+4j)
隨機數
import random
# 隨機整數
print(random.randint(1, 10)) # 1 到 10 之間的隨機整數
# 隨機浮點數
print(random.random()) # 0 到 1 之間的隨機浮點數
print(random.uniform(1, 10)) # 1 到 10 之間的隨機浮點數
# 從序列中隨機選擇
fruits = ["apple", "banana", "orange"]
print(random.choice(fruits))