Python 變數

Python 變數(Python Variables)

這篇 Python 變數教學將帶你認識變數的建立、命名規則與 Python 的動態型別特性。變數就像一個有名字的盒子,用來存放資料;在 Python 中建立變數非常簡單,不需要事先宣告型別,指派值的當下變數就誕生了。

建立變數

使用 = 將值指派給變數:

name = "小明"
age = 25
height = 175.5
is_student = True

print(name, age, height, is_student)

執行輸出:

小明 25 175.5 True

變數命名規則

規則範例
只能包含字母、數字、底線user_namescore2 合法
不能以數字開頭2score 不合法
大小寫敏感nameName 是不同變數
不能使用保留字ifforclass 等不能當變數名
慣例使用小寫加底線(snake_case)total_price 而非 totalPrice
常數慣例全大寫MAX_SIZE = 100(Python 沒有真正的常數,全大寫是約定)

動態型別(Dynamic Typing)

Python 是動態型別語言,變數的型別由值決定,而且可以隨時改變。用內建函式 type() 可以查看目前的型別:

x = 100
print(type(x))

x = "一百"      # 同一個變數改放字串,完全合法
print(type(x))

執行輸出:

<class 'int'>
<class 'str'>

彈性很大,但也代表型別錯誤要到執行時才會發現,這是 Python 開發要特別留意的地方。

多重指派

Python 可以一行同時建立多個變數:

a, b, c = 1, 2, 3
print(a, b, c)

x = y = z = 0     # 三個變數指向同一個值
print(x, y, z)

a, b = b, a       # 經典用法:交換兩個變數的值
print(a, b)

執行輸出:

1 2 3
0 0 0
2 1

常見錯誤

1. NameError: name ‘xxx’ is not defined

使用了還沒有建立的變數,最常見的原因是變數名打錯字(例如把 user_name 打成 username),或是在指派之前就先使用了變數。

2. SyntaxError: invalid syntax(變數名不合法)

變數名以數字開頭(2name = "x")或使用了保留字(class = "A")。改用合法的名稱即可,保留字清單可以在 REPL 輸入 help("keywords") 查看。

3. 把 = 與 == 搞混

= 是指派、== 是比較相等。在 if 判斷中寫成 if x = 5: 會直接報 SyntaxError,要寫 if x == 5:

總結

Python 變數用 = 指派即建立,命名慣例是小寫加底線,型別由值決定且可隨時改變,用 type() 可以隨時檢查。下一篇我們來看 Python 的數字型別與運算子。

延伸閱讀