
Biến trong Python (VARIABLES)
Bài viết này giúp bạn:
Sau chương này, bạn sẽ hiểu và biết cách:
- Tạo và sử dụng biến (variable) trong Python.
- Hiểu tại sao cần biến và cách giúp code gọn gàng hơn.
- Biết quy tắc đặt tên biến, cách dùng f-string với biến.
- Biết cách thay đổi logic chương trình chỉ bằng chỉnh sửa 1 dòng thay vì hàng loạt dòng lặp lại.
1. Vấn đề trước khi có biến
Trong chương trước, ta đã viết chương trình:
print(f"20 days are {20 * 24 * 60} minutes")Nếu ta muốn tính cho 35, 50, 110 ngày… ta có thể copy dòng này và thay số:
print(f"20 days are {20 * 24 * 60} minutes")
print(f"35 days are {35 * 24 * 60} minutes")
print(f"50 days are {50 * 24 * 60} minutes")
print(f"110 days are {110 * 24 * 60} minutes")Kết quả:
20 days are 28800 minutes
35 days are 50400 minutes
50 days are 72000 minutes
110 days are 158400 minutesKết quả đúng, nhưng…
Nếu ta muốn đổi từ phút (minutes) sang giây (seconds), ta phải:
- Đổi phép tính ở cả 4 dòng (
60→60*60).
- Đổi cả chữ
"minutes"thành"seconds"trong từng dòng.
Rất mất thời gian và dễ sai! → Đây là lúc cần dùng biến.
2. Giới thiệu về Biến (Variables)
Biến trong lập trình giống như một cái hộp để lưu trữ giá trị.
Bạn có thể:
- Đặt tên cho biến.
- Gán cho nó một giá trị.
- Dùng biến đó ở nhiều nơi khác nhau.
Cú pháp:
tên_biến = giá_trịVí dụ:
days_in_a_week = 7
hours_in_a_day = 24Python sẽ nhớ rằng:
days_in_a_weekcó giá trị7.
hours_in_a_daycó giá trị24.
3. Ứng dụng biến vào ví dụ của ta
Ta tạo một biến lưu công thức chuyển đổi ngày → giây:
to_seconds = 24 * 60 * 60Và dùng lại ở nhiều nơi:
print(f"20 days are {20 * to_seconds} seconds")
print(f"35 days are {35 * to_seconds} seconds")
print(f"50 days are {50 * to_seconds} seconds")
print(f"110 days are {110 * to_seconds} seconds")Kết quả:
20 days are 1728000 seconds
35 days are 3024000 seconds
50 days are 4320000 seconds
110 days are 9504000 secondsCode chạy đúng, gọn hơn rất nhiều!
4. Ưu điểm khi dùng biến
Trước:
Phải sửa 4 chỗ nếu muốn đổi từ “minutes” sang “seconds”.
Sau:
Chỉ cần sửa 1 dòng (giá trị biến):
to_units = 24 * 60 * 60 # đổi thành 24 * 60 nếu chỉ muốn tính phútvà đổi nhãn hiển thị:
unit_name = "seconds"Cập nhật code:
to_units = 24 * 60 * 60
unit_name = "seconds"
print(f"20 days are {20 * to_units} {unit_name}")
print(f"35 days are {35 * to_units} {unit_name}")
print(f"50 days are {50 * to_units} {unit_name}")
print(f"110 days are {110 * to_units} {unit_name}")Kết quả:
20 days are 1728000 seconds
35 days are 3024000 seconds
50 days are 4320000 seconds
110 days are 9504000 secondsGiờ nếu bạn muốn đổi sang hours, chỉ cần:
to_units = 24
unit_name = "hours"Không cần sửa bất kỳ dòng print() nào nữa. Đây chính là sức mạnh của biến.
5. Quy tắc đặt tên biến trong Python
| Quy tắc | Ví dụ đúng | Ví dụ sai | Ghi chú |
|---|---|---|---|
Dùng chữ cái, số và dấu gạch dưới _ | days_in_month | days-in-month | Dấu - không hợp lệ. |
| Không bắt đầu bằng số | unit_count | 2days | Không được bắt đầu bằng số. |
| Phân biệt chữ hoa và thường | unit_name ≠ Unit_Name | Python phân biệt hoa/thường. | |
| Tên biến nên có ý nghĩa | seconds_in_day | x, data1 | Giúp dễ hiểu khi đọc code. |
| Không dùng từ khóa đặc biệt của Python | — | for, if, print, class | Python có hơn 30 “reserved keywords”. |
Bạn có thể xem danh sách từ khóa bằng lệnh:
import keyword
print(keyword.kwlist)6. Kiểu dữ liệu của biến
Python tự động xác định kiểu dữ liệu khi bạn gán giá trị.
Không cần khai báo kiểu như các ngôn ngữ khác (C, Java, v.v.)
Ví dụ:
name = "Python" # String
days = 20 # Integer
rate = 3.5 # FloatBạn có thể kiểm tra kiểu biến bằng:
print(type(name))
print(type(days))
print(type(rate))Kết quả:
<class 'str'>
<class 'int'>
<class 'float'>7. Kết hợp biến trong chuỗi (f-string)
Như đã biết, f-string cho phép ta chèn trực tiếp biến vào chuỗi.
Ví dụ:
days = 10
to_hours = 24
unit = "hours"
print(f"{days} days are {days * to_hours} {unit}")Kết quả:
10 days are 240 hours8. Tóm tắt lợi ích của biến
| Tác dụng | Giải thích |
|---|---|
| Tái sử dụng giá trị | Dùng một giá trị ở nhiều nơi mà chỉ cần khai báo 1 lần. |
| Dễ bảo trì code | Thay đổi giá trị 1 lần, toàn bộ code cập nhật theo. |
| Code dễ đọc | Dùng tên biến mô tả giúp hiểu nhanh chương trình làm gì. |
| Hạn chế lỗi | Tránh sai sót khi sửa nhiều chỗ trùng lặp. |
9. Bài tập thực hành
Bài tập 1
Tạo chương trình in số phút trong 12 ngày, sử dụng biến.
to_minutes = 24 * 60
unit_name = "minutes"
print(f"12 days are {12 * to_minutes} {unit_name}")Bài tập 2
Viết chương trình tính số giây trong nhiều ngày khác nhau:
- 7 ngày
- 15 ngày
- 30 ngày
Sử dụng biến to_seconds và unit_name.
to_seconds = 24 * 60 * 60
unit_name = "seconds"
print(f"7 days are {7 * to_seconds} {unit_name}")
print(f"15 days are {15 * to_seconds} {unit_name}")
print(f"30 days are {30 * to_seconds} {unit_name}")Bài tập 3
Thử thay đổi giá trị to_seconds → 24 * 60 và unit_name → "minutes".
Chạy lại chương trình và xem điều gì thay đổi.
💡 Gợi ý: Bạn vừa đổi logic chương trình mà không cần sửa 3 dòng print() nào!