Trong những biến sau, biến nào đặt sai quy tắc? Cách nhận biết

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

  1. 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, @, $, %, !…
  2. 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.
  3. 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…
  4. Phân biệt chữ hoa, chữ thường. Tong và tong là 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 = 5 báo lỗi cú pháp.
  • Dấu - được hiểu là phép trừ: ho-ten nghĩa là “ho trừ ten”, không phải một tên.
  • Chữ số đứng đầu khiến 2ten trô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

  1. Nhìn kí tự đầu tiên: nếu là chữ số → loại ngay là sai.
  2. Quét cả tên tìm dấu cách, -, ., @, $, #…
  3. Đối chiếu với danh sách từ khoá quen thuộc.
  4. 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ĩ _ten là sai vì có dấu gạch dưới ở đầu. Thực tế hoàn toàn hợp lệ.
  • Nghĩ Ten và ten là một biến.
  • Nhầm print với từ khoá. print là 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.