Tên biến
Một biến có thể có một tên ngắn [như X và Y] hoặc một tên mô tả hơn [Age, Carname, Total_Volume]. Quy tắc cho các biến Python:
- Một tên biến phải bắt đầu bằng một chữ cái hoặc ký tự dấu gạch dưới
- Một tên biến không thể bắt đầu với một số
- Một tên biến chỉ có thể chứa các ký tự alpha-numeric và nhấn mạnh [A-Z, 0-9 và _]
- Tên biến là nhạy cảm trường hợp [tuổi, tuổi và tuổi là ba biến khác nhau]
Thí dụ
Tên biến hợp pháp:
myvar = "john" my_var = "john" _my_var = "john" myvar = "john" myvar = "john" myvar2 = "john"
my_var = "John"
_my_var = "John"
myVar = "John"
MYVAR = "John"
myvar2 = "John"
Hãy tự mình thử »
Thí dụ
Tên biến hợp pháp:
myvar = "john" my_var = "john" _my_var = "john" myvar = "john" myvar = "john" myvar2 = "john"
my-var = "John"
my var = "John"
Hãy tự mình thử »
Tên biến bất hợp pháp:
2Myvar = "John" My-Var = "John" My Var = "John"
Hãy nhớ rằng các tên biến nhạy cảm trường hợp
Tên biến đa từ
Tên biến với nhiều hơn một từ có thể khó đọc.
Có một số kỹ thuật bạn có thể sử dụng để làm cho chúng dễ đọc hơn:
Trường hợp lạc đà
Mỗi từ, ngoại trừ từ đầu tiên, bắt đầu bằng một chữ cái viết hoa:
myvariablename = "John"
Trường hợp Pascal
Mỗi từ bắt đầu bằng một chữ cái viết hoa:
Myvariablename = "John"
Vỏ rắn
Theo PEP 3131, ký tự đầu tiên của một định danh cần thuộc về ID_Start
, phần còn lại của ID_Continue
, được định nghĩa như sau:
ID_Start
được định nghĩa là tất cả các ký tự có một trong các loại chữ hoa chữ cái chung [LU], chữ thường [ll], titlecase Letters [LT], các chữ cái sửa đổi [LM] và các ký tự mang thuộc tính khác_id_start. Xid_start sau đó đóng tập hợp này theo chuẩn hóa, bằng cách xóa tất cả các ký tự có chuẩn hóa NFKC không có dạngID_Start ID_Continue*
nữa.
ID_Continue
được định nghĩa là tất cả các ký tự trongID_Start
, cộng với các nhãn hiệu không định vị [MN], khoảng cách kết hợp các nhãn hiệu [MC], số thập phân [ND], dấu chấm câu [PC] và ký tự mang thuộc tính khác_id_continue. Một lần nữa,XID_Continue
đóng bộ này theo NFKC-Normalization; Nó cũng thêm0 để hỗ trợ Catalan.>>> a = 'á' >>> len[a] 2 >>> import unicodedata >>> unicodedata.normalize["NFKC", a] 'á' >>> len[_] 1
Đó là một danh sách dài [hiện có khoảng 120.000 ký tự] - may mắn thay, có một dự án hữu ích trên GitHub có chứa danh sách và một tập lệnh để tạo nó.
Trang này liệt kê tất cả các ký tự có giá trị trong tên biến Python 3. Trong Python 2, các tên biến chỉ có thể chứa các ký tự ASCII A-Z, A-Z, 0-9 và _, nhưng trong Python 3, một bộ ký tự unicode lớn hơn nhiều được cho phép.
Mã nguồn cho trang này là trên GitHub, bao gồm tập lệnh được sử dụng để tạo danh sách ký tự.
Các chi tiết đầy đủ trong đó các ký tự Unicode được cho phép được mô tả trong tài liệu.
Được cảnh báo rằng Python luôn áp dụng chuẩn hóa NFKC cho các ký tự. Do đó, hai ký tự riêng biệt thực sự có thể tạo ra cùng một tên biến. Ví dụ:
>>> ª = 1 # FEMININE ORDINAL INDICATOR [U+00AA]
>>> a # LATIN SMALL LETTER A [i.e., ASCII lowercase 'a', U+0061]
1
Chuẩn hóa cũng kết hợp các điểm nhấn, do đó, một tên hợp lệ có thể chứa các ký tự không có bên dưới. Ví dụ,
>>> a = 'á'
>>> len[a]
2
>>> import unicodedata
>>> unicodedata.normalize["NFKC", a]
'á'
>>> len[_]
1
1 bao gồm hai ký tự, chữ nhỏ Latin A [tức là, chữ thường ASCII >>> a = 'á'
>>> len[a]
2
>>> import unicodedata
>>> unicodedata.normalize["NFKC", a]
'á'
>>> len[_]
1
2, U+0061] và kết hợp giọng nói cấp tính [U+0301]. Nhân vật thứ hai, kết hợp giọng cấp tính, không có trong danh sách dưới đây vì nó không có giá trị trong một định danh của chính nó. Tuy nhiên, khi nó tuân theo >>> a = 'á'
>>> len[a]
2
>>> import unicodedata
>>> unicodedata.normalize["NFKC", a]
'á'
>>> len[_]
1
2, hai ký tự cùng NFKC bình thường hóa thành một ký tự >>> a = 'á'
>>> len[a]
2
>>> import unicodedata
>>> unicodedata.normalize["NFKC", a]
'á'
>>> len[_]
1
4 [chữ nhỏ Latin A với cấp tính, u+00e1].Bạn có thể bình thường hóa các chuỗi với Python bằng mô -đun
>>> a = 'á'
>>> len[a]
2
>>> import unicodedata
>>> unicodedata.normalize["NFKC", a]
'á'
>>> len[_]
1
5:>>> a = 'á'
>>> len[a]
2
>>> import unicodedata
>>> unicodedata.normalize["NFKC", a]
'á'
>>> len[_]
1
Bảng dưới đây liệt kê các ký tự bình thường hóa các ký tự khác, nhưng lưu ý rằng các kết hợp các ký tự khác như kết hợp các điểm nhấn có thể không được liệt kê dưới đây nhưng vẫn có thể bình thường hóa một ký tự được liệt kê dưới đây.
Ngoài ra, các ký tự Unicode không có trong danh sách này không thể được sử dụng trong các tên biến. Các ký tự hợp lệ chủ yếu là những nhân vật chủ yếu là những người giống như chữ và dưới chữ số + dấu gạch dưới. Nó không bao gồm những thứ như các biểu tượng toán học [ngoại trừ các chữ cái Hy Lạp vì đó là những chữ cái] hoặc biểu tượng cảm xúc.
>>> ∫x = 1
File "", line 1
∫x = 1
^
SyntaxError: invalid character in identifier
>>> 💩 = 'Python 2'
File "", line 1
💩 = 'Python 2'
^
SyntaxError: invalid character in identifier
Tôi có nên sử dụng các ký tự này trong mã Python của mình không?
PEP 8 Chỉ định:
Đối với Python 3.0 và hơn thế nữa, chính sách sau đây được quy định cho thư viện tiêu chuẩn [xem PEP 3131]: Tất cả các định danh trong thư viện tiêu chuẩn Python phải sử dụng các định danh ASCII-MONY và nên sử dụng các từ tiếng Anh ở bất cứ nơi nào khả thi [trong nhiều trường hợp, Bệnh tật và kỹ thuật Các thuật ngữ được sử dụng mà không phải tiếng Anh]. Ngoài ra, chuỗi chữ và ý kiến cũng phải ở ASCII. Ngoại lệ duy nhất là [a] các trường hợp kiểm tra kiểm tra các tính năng không phải ASCII và [b] tên của các tác giả. Các tác giả có tên không dựa trên bảng chữ cái Latin [Latin-1, ISO/IEC 8859-1 bộ ký tự] phải cung cấp phiên âm tên của họ trong bộ ký tự này.
Các dự án nguồn mở với khán giả toàn cầu được khuyến khích áp dụng chính sách tương tự.
Vấn đề chính là đối với nhiều người, việc gõ các ký tự không phải ASCII là không dễ dàng. Nó thường chỉ có thể bằng cách sao chép và dán. Nếu bạn chắc chắn 100% rằng mã của bạn sẽ chỉ được đọc và điều hành bởi những người nói cùng ngôn ngữ với bạn và có thể dễ dàng gõ các ký tự bạn đang sử dụng, có lẽ sẽ ổn khi làm như vậy. Một khả năng sẽ là cung cấp bí danh cho các tên là một phần của API công khai, để người dùng có thể chọn sử dụng nào [ví dụ:
>>> a = 'á'
>>> len[a]
2
>>> import unicodedata
>>> unicodedata.normalize["NFKC", a]
'á'
>>> len[_]
1
6].Nếu bạn quyết định sử dụng các ký tự không phải ASCII cho các tên biến, hãy nhận biết các vấn đề chuẩn hóa được mô tả ở trên. Nên luôn luôn chèn các tên biến trong các tệp nguồn bằng cách sử dụng dạng chuẩn hóa của chúng.
Danh sách ký tự Unicode
Có hai loại ký tự hợp lệ, các nhân vật bắt đầu và tiếp tục. Các nhân vật bắt đầu có thể ở bất cứ đâu trong một định danh. Chúng tương ứng với các chữ cái của người Viking và nhấn mạnh vào các định danh ASCII-OLD. Các nhân vật tiếp tục của người Viking không thể là nhân vật đầu tiên trong một định danh. Chúng tương ứng với các số của người Viking theo cách cũ của ASCII-chỉ. Một định danh hợp lệ có thể là bất kỳ ký tự bắt đầu nào của người Viking, theo sau là bất kỳ số lượng ký tự bắt đầu của BEPLE hoặc các nhân vật tiếp tục.
Các trang có thể được xem ở đây:
Cảnh báo: Các trang khá lớn và có thể gây ra vấn đề trong một số trình duyệt.
Bắt đầu ký tự [Raw Markdown] [raw markdown]
Tiếp tục ký tự [Raw Markdown] [raw markdown]