在 Python 程式設計中,整數 (int) 是一種基本且常用的資料型別,用於表示沒有小數點的數字。本文將深入探討 Python 整數的各個方面,包括定義、範圍、運算、型別轉換以及實際應用。
什麼是整數 (int)?
整數是指沒有小數部分的數字,可以是正數、負數或零。在 Python 中,整數屬於 int 型別。
# 整數範例
x = 10
y = -5
z = 0
print(type(x)) # 輸出: <class 'int'>
print(type(y)) # 輸出: <class 'int'>
print(type(z)) # 輸出: <class 'int'>
Python 整數的範圍
與某些程式語言 (例如 C/C++) 不同,Python 3 中的整數沒有固定的範圍限制。理論上,Python 整數可以表示任意大小的整數,只受限於可用記憶體的大小。
重要觀念: Python 2 有兩種整數型別:int (有範圍限制) 和 long (無限範圍)。但在 Python 3 中,這兩種型別已合併為單一的 int 型別,並且天生就沒有範圍限制。
整數的基本運算
Python 支援對整數進行各種數學運算:
- 加法 (+): 兩個整數相加。
- 減法 (-): 兩個整數相減。
- 乘法 (*): 兩個整數相乘。
- 除法 (/): 兩個整數相除,結果恆為浮點數 (即使可以整除)。
- 整數除法 (//): 兩個整數相除,結果為整數 (無條件捨去小數部分)。
- 取餘數 (%): 得到兩個整數相除的餘數。
- 次方 (**): 計算一個整數的冪次方。
a = 10
b = 3
print(f"{a} + {b} = {a + b}") # 輸出: 10 + 3 = 13
print(f"{a} - {b} = {a - b}") # 輸出: 10 - 3 = 7
print(f"{a} * {b} = {a * b}") # 輸出: 10 * 3 = 30
print(f"{a} / {b} = {a / b}") # 輸出: 10 / 3 = 3.333... (浮點數)
print(f"{a} // {b} = {a // b}") # 輸出: 10 // 3 = 3 (整數)
print(f"{a} % {b} = {a % b}") # 輸出: 10 % 3 = 1 (餘數)
print(f"{a} ** {b} = {a ** b}") # 輸出: 10 ** 3 = 1000 (10 的 3 次方)
整數與其他型別的轉換
在不同情境下,我們常需要在整數和其他資料型別之間進行轉換。最常見的是使用 int() 和 str() 函式。
# 將浮點數轉換為整數 (直接捨去小數)
float_num = 3.14
int_num_from_float = int(float_num)
print(f"int(3.14) -> {int_num_from_float}") # 輸出: 3
# 將字串轉換為整數 (字串內容必須是合法的整數)
str_num = "123"
int_num_from_str = int(str_num)
print(f"int('123') -> {int_num_from_str}") # 輸出: 123
# 將整數轉為字串
num = 456
str_from_num = str(num)
print(f"str(456) is a {type(str_from_num)}") # 輸出: <class 'str'>
重要觀念: 如果嘗試使用 int() 轉換的字串不是合法的數字格式 (例如 "hello" 或 "12.5"),程式將會中斷並產生 ValueError 錯誤。
整數的應用
整數在程式設計中有非常廣泛的應用,例如:
- 計數: 計算迴圈的次數、元素的個數等。
- 索引: 存取串列、元組等有序資料結構中的元素。
- 數學運算: 進行各種數學計算。
- 狀態表示: 使用特定數字表示狀態 (例如,0 表示關閉,1 表示開啟)。
- 日期和時間: 時間戳記 (timestamp) 通常以整數表示自某個特定時間點以來經過的秒數。
# 計數
for i in range(5): # 迴圈從 0 數到 4,共執行 5 次
print(f"迴圈第 {i+1} 次")
# 索引
my_list = [10, 20, 30]
print(f"列表的第一個元素是: {my_list[0]}") # 輸出: 10
# 數學運算
result = (10 + 5) * 2 - 7 // 3
print(f"運算結果: {result}") # 輸出: 28
總結
Python 的整數 (int) 型別是一種強大且靈活的資料型別。它沒有範圍限制的特性讓開發者無需擔心數值溢位問題,同時支援豐富的數學運算,並可以方便地與其他型別進行轉換。確實掌握整數的特性和用法,是每一位 Python 開發者都必須具備的基礎技能。