Trả lời nhanh
Biến đặt sai quy tắc là biến vi phạm ít nhất một trong các điều kiện: bắt đầu bằng chữ số (ví dụ 2ten), chứa dấu cách hoặc kí tự đặc biệt như -, @, $, . (ví dụ ho ten, ho-ten), hoặc trùng từ khoá của ngôn ngữ (ví dụ for, class). Hãy kiểm tra lần lượt từng phương án theo 4 quy tắc dưới đây.
Đề bài gốc thường cho 4 tên biến để em chọn tên sai. Vì mỗi đề có danh sách khác nhau, bài này giúp em nắm quy tắc và tự loại trừ nhanh, kèm các ví dụ do thầy cô tự đặt. Phần chính nói về Python; cuối bài có ghi chú cho Pascal.
4 quy tắc đặt tên biến trong Python
- Chỉ gồm chữ cái, chữ số và dấu gạch dưới
_. Không có dấu cách, dấu gạch ngang, dấu chấm,@,$,%,!… - Không được bắt đầu bằng chữ số. Có thể bắt đầu bằng chữ cái hoặc dấu gạch dưới.
- Không trùng từ khoá (từ dành riêng) như
if,else,for,while,class,def,True,None,and,or,not,in,is,return… - Phân biệt chữ hoa, chữ thường.
Tongvàtonglà hai biến khác nhau; điều này không làm tên sai nhưng hay gây lỗi khi gõ nhầm.
Vì sao các tên đó bị coi là sai?
- Dấu cách làm trình thông dịch hiểu thành hai từ riêng biệt, nên
ho ten = 5báo lỗi cú pháp. - Dấu
-được hiểu là phép trừ:ho-tennghĩa là “ho trừ ten”, không phải một tên. - Chữ số đứng đầu khiến
2tentrông như một số, trình thông dịch không thể phân biệt số với tên. - Từ khoá đã có ý nghĩa riêng trong ngôn ngữ nên không thể dùng làm tên biến.
Bảng kiểm tra ví dụ (tự đặt)
| Tên biến | Đúng/Sai | Lý do |
|---|---|---|
so_luong |
Đúng | Chữ cái và gạch dưới |
_tong |
Đúng | Được phép bắt đầu bằng gạch dưới |
diem1 |
Đúng | Chữ số nằm sau chữ cái |
1diem |
Sai | Bắt đầu bằng chữ số |
ten hs |
Sai | Có dấu cách |
chieu-dai |
Sai | Có dấu gạch ngang |
gia$ |
Sai | Có kí tự đặc biệt |
while |
Sai | Trùng từ khoá |
While |
Đúng | Phân biệt hoa thường nên không trùng while (nhưng không nên dùng vì dễ nhầm) |
Cách làm nhanh khi gặp câu trắc nghiệm
- Nhìn kí tự đầu tiên: nếu là chữ số → loại ngay là sai.
- Quét cả tên tìm dấu cách,
-,.,@,$,#… - Đối chiếu với danh sách từ khoá quen thuộc.
- Nếu có nhiều phương án sai, đọc kĩ yêu cầu: “sai quy tắc” hay “không nên dùng”.
Mẹo nhớ: “Đầu không số – giữa không cách – cả tên không phải từ khoá”.
Lỗi sai thường gặp
- Nghĩ
_tenlà sai vì có dấu gạch dưới ở đầu. Thực tế hoàn toàn hợp lệ. - Nghĩ
Tenvàtenlà một biến. - Nhầm
printvới từ khoá.printlà tên hàm có sẵn, không bị báo lỗi cú pháp khi gán, nhưng gán đè sẽ làm mất chức năng in, nên tránh. - Dùng chữ có dấu tiếng Việt như
điểm. Python 3 vẫn chấp nhận, nhưng nên đặt tên không dấu cho an toàn và dễ đọc.
Ghi chú với Pascal
Trong Pascal, tên chỉ gồm chữ cái (không dấu), chữ số và dấu gạch dưới, không bắt đầu bằng chữ số, không trùng từ khoá như begin, end, var, program. Khác Python, Pascal không phân biệt chữ hoa và chữ thường: Tong và tong là cùng một tên. Tên có dấu tiếng Việt như điểm bị coi là sai.
Bài luyện tập
Bài 1. Trong các tên sau, tên nào sai quy tắc trong Python: a. tong_so, b. 3so, c. _x, d. dien_tich?
Đáp án: b. 3so bắt đầu bằng chữ số.
Bài 2. Chọn tên sai: a. my.name, b. myName, c. my_name2, d. MY_NAME.
Đáp án: a. my.name có dấu chấm (dấu chấm dùng để truy cập thuộc tính, không thuộc tên biến).
Bài 3. Chọn tên sai: a. lop10a, b. class, c. Lop, d. tb_cong.
Đáp án: b. class là từ khoá của Python.
Câu hỏi thường gặp
Tên biến có được bắt đầu bằng dấu gạch dưới không?
Có. Tên như _tong hay _x hoàn toàn hợp lệ trong Python và Pascal. Điều không được phép là 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ó. Tong và tong là hai biến khác nhau. Pascal thì không phân biệt, hai tên này là một.
Vì sao không được đặt tên biến trùng từ khoá?
Từ khoá như if, for, class, while đã có ý nghĩa riêng trong cú pháp ngôn ngữ, nên dùng làm tên biến sẽ gây lỗi cú pháp.
Tên biến có dấu cách hoặc dấu gạch ngang sai ở đâu?
Dấu cách tách tên thành hai từ riêng, còn dấu gạch ngang được hiểu là phép trừ. Muốn nối từ, hãy dùng dấu gạch dưới, ví dụ ho_ten.