Trả lời nhanh
Phương án đúng là A: tên biến có thể bắt đầu bằng dấu gạch dưới. Python cho phép tên biến bắt đầu bằng chữ cái hoặc dấu gạch dưới (_), sau đó có thể chứa chữ cái, chữ số và dấu gạch dưới. Tên biến không được bắt đầu bằng chữ số, không có dấu cách hay ký tự đặc biệt, không trùng từ khóa, và phân biệt chữ hoa với chữ thường.
Các quy tắc đặt tên biến trong Python
- Ký tự đầu tiên là chữ cái (a–z, A–Z) hoặc dấu gạch dưới (_). Không được bắt đầu bằng chữ số.
- Các ký tự tiếp theo gồm chữ cái, chữ số và dấu gạch dưới.
- Không dùng dấu cách và các ký tự đặc biệt như -, +, *, @, $, %, !.
- Không đặt trùng từ khóa của Python như if, for, while, class, True, None.
- Phân biệt chữ hoa, chữ thường: tuoi, Tuoi và TUOI là ba biến khác nhau.
Bảng ví dụ tên biến đúng và sai
| Tên biến | Hợp lệ? | Lý do |
|---|---|---|
| _so_luong | Hợp lệ | Bắt đầu bằng dấu gạch dưới là được phép |
| diem_toan | Hợp lệ | Chữ cái và gạch dưới |
| lop10a | Hợp lệ | Chữ số nằm ở giữa hoặc cuối |
| 10lop | Không hợp lệ | Bắt đầu bằng chữ số |
| diem toan | Không hợp lệ | Có dấu cách |
| diem-toan | Không hợp lệ | Dấu gạch ngang bị hiểu là phép trừ |
| for | Không hợp lệ | Trùng từ khóa |
| Tuoi và tuoi | Hợp lệ, là hai biến khác nhau | Python phân biệt hoa thường |
Vì sao tên biến không được bắt đầu bằng chữ số?
Khi đọc mã, Python phải phân biệt được đâu là số và đâu là tên. Nếu cho phép tên như 10lop thì trình thông dịch khó biết đây là số 10 kèm một đoạn lạ hay là một tên biến. Vì thế Python quy định ký tự đầu không được là chữ số.
Dấu gạch dưới ở đầu tên có ý nghĩa gì?
Về cú pháp, tên bắt đầu bằng _ hoàn toàn hợp lệ. Về thói quen lập trình, người ta dùng dấu gạch dưới ở đầu để ngầm báo rằng biến này dùng nội bộ, không nên truy cập từ bên ngoài. Dấu _ đứng một mình còn thường dùng cho biến tạm không cần dùng đến.
Gợi ý đặt tên biến tốt
- Đặt tên có ý nghĩa: diem_trung_binh dễ hiểu hơn dtb hay x.
- Dùng chữ thường và nối bằng dấu gạch dưới (kiểu snake_case), đây là quy ước phổ biến trong Python.
- Có thể viết không dấu tiếng Việt cho tên biến để tránh lỗi bộ mã, nhưng không bắt buộc.
- Tránh đặt tên trùng với hàm có sẵn như print, input, sum, max.
Lỗi sai thường gặp
- Cho rằng tên biến không được bắt đầu bằng dấu gạch dưới. Thực tế điều này được phép.
- Dùng dấu gạch ngang (-) thay cho gạch dưới (_).
- Cho rằng Tuoi và tuoi là một biến. Python coi đây là hai biến khác nhau.
Luyện tập
- Trong các tên sau, tên nào hợp lệ: tong_diem, 2diem, tong diem, class? Đáp án: chỉ có tong_diem, vì 2diem bắt đầu bằng số, tong diem có dấu cách, class là từ khóa.
- Đoạn lệnh ten = ‘An’; Ten = ‘Binh’; print(ten) in ra gì? Đáp án: An, vì ten và Ten là hai biến khác nhau.
- Sửa tên biến sai: 3so_nguyen, so-thuc. Đáp án: so_nguyen_3 (hoặc _3so_nguyen), so_thuc.
Câu hỏi thường gặp
Tên biến trong Python có được bắt đầu bằng dấu gạch dưới không?
Có. Tên biến có thể bắt đầu bằng chữ cái hoặc dấu gạch dưới, nhưng không được bắt đầu bằng chữ số.
Python có phân biệt chữ hoa và chữ thường trong tên biến không?
Có. Ví dụ diem và Diem là hai biến hoàn toàn khác nhau.
Tên biến có thể chứa dấu cách không?
Không. Muốn nối nhiều từ nên dùng dấu gạch dưới, ví dụ diem_trung_binh.
Có được đặt tên biến trùng từ khóa như for, if không?
Không. Từ khóa đã được Python dành riêng cho cú pháp nên không dùng làm tên biến.