Vì vậy, để brute-force nó, bạn có thể sử dụng
>>> import keyword >>> keyword.iskeyword['or'] True62, nhưng sau đó hãy đảm bảo xác định những gì sẽ được nhóm lại với nhau, nối thêm các mục vào các phần tử khi bạn thực hiện
Các giải pháp khác có thể có biểu thức chính quy, thư viện ngữ pháp đơn giản, v.v. Và sẽ được cho là dễ hiểu hơn
CHỈNH SỬA. đối với các # không phải là số nguyên, bạn cũng có thể lưu ý rằng khi gặp một số như vậy, hãy tiếp tục và thay đổi chỉ mục trước đó của danh sách mã thông báo mới, được phân tích cú pháp và khi bạn đạt đến số tiếp theo, số đóng, mã thông báo, v.v., bạn
giả sử bạn đặt mọi thứ vào một danh sách mới dưới dạng chuỗi, đây là một cách để lấy lại số float & int của bạn
Đơn vị riêng lẻ nhỏ nhất của ngôn ngữ Python được gọi là mã thông báo. Nó có thể đặt trước các từ, tên do người dùng xác định [Định danh], các toán tử ký hiệu đặc biệt, v.v.
Có các loại mã thông báo sau trong ngôn ngữ python
- từ khóa / Từ dành riêng
- Định danh/tên do người dùng xác định
- chữ
- nhà điều hành
Từ khóa trong trăn
Từ khóa là những từ dự trữ có ý nghĩa hoặc ý nghĩa đặc biệt và ý nghĩa đó không thể thay đổi. Nó còn được gọi là từ hệ thống
Từ khóa có ý nghĩa hoặc mục đích cố định. như int cho giá trị số nguyên, nếu cho điều kiện kiểm tra, v.v.
Những tên này không thể được sử dụng cho tên hoặc biến do người dùng xác định
từ khóa Python
định danh. -
Bất kỳ tên nào do người dùng xác định đều được gọi là mã định danh. Nó có thể là tên biến, tên danh sách, tên hàm, v.v.
thí dụ. x, y, tổng, chiều dài, chiều cao, ram, v.v.
chữ. –
Chữ có nghĩa là giá trị được gán cho biến. Giá trị có thể là số nguyên, chuỗi, float, v.v.
Mọi mã thông báo được tạo bởi trình mã thông báo đều có một loại. Các loại này được biểu diễn bằng các hằng số nguyên. Giá trị số nguyên thực tế của hằng số mã thông báo là không quan trọng [ngoại trừ ] và không bao giờ được sử dụng hoặc dựa vào. Thay vào đó, hãy tham khảo mã thông báo theo tên biến của chúng và sử dụng từ điển
>>> import keyword >>> keyword.iskeyword['or'] True1 để lấy tên của loại mã thông báo. Chẳng hạn, giá trị số nguyên chính xác có thể thay đổi giữa các phiên bản Python, nếu mã thông báo mới được thêm hoặc xóa [và thực tế, trong các phiên bản Python gần đây, chúng có]. Trong các ví dụ bên dưới, số mã thông báo hiển thị ở đầu ra là số từ Python 3. 9
Lý do các loại mã thông báo được trình bày theo cách này là vì mã thông báo thực tế được sử dụng bởi trình thông dịch Python không phải là mô-đun
>>> import keyword >>> keyword.iskeyword['or'] True2; . C không có hệ thống đối tượng như Python. Thay vào đó, các kiểu liệt kê được đại diện bởi các số nguyên [thực ra,
>>> import keyword >>> keyword.iskeyword['or'] True3 có một mảng lớn các kiểu mã thông báo. Giá trị nguyên của mỗi mã thông báo là chỉ mục của nó trong mảng đó]. Mô-đun
>>> import keyword >>> keyword.iskeyword['or'] True2 được viết bằng Python thuần túy, nhưng các giá trị và tên loại mã thông báo phản ánh các giá trị và tên của mã thông báo C, với ba trường hợp ngoại lệ. , , và
Tất cả các loại mã thông báo được xác định trong mô-đun
>>> import keyword >>> keyword.iskeyword['or'] True8, nhưng mô-đun
>>> import keyword >>> keyword.iskeyword['or'] True2 có
>>> 'α'.isidentifier[] True >>> 'or'.isidentifier[] True0, vì vậy chúng cũng có thể được nhập từ
>>> import keyword >>> keyword.iskeyword['or'] True2. Do đó, cách dễ nhất là chỉ cần nhập mọi thứ từ
>>> import keyword >>> keyword.iskeyword['or'] True2. Hơn nữa, các mã thông báo , và đã nói ở trên không thể nhập được từ
>>> import keyword >>> keyword.iskeyword['or'] True8 trước Python 3. 7, chỉ từ
>>> import keyword >>> keyword.iskeyword['or'] True2
Từ điển >>> import keyword
>>> keyword.iskeyword['or']
True
1
Từ điển
>>> import keyword >>> keyword.iskeyword['or'] True1 ánh xạ các mã thông báo trở lại tên của chúng
>>> import keyword >>> keyword.iskeyword['or'] True3
Mã thông báo
Để đơn giản hóa các phần bên dưới, hàm tiện ích sau đây được sử dụng cho tất cả các ví dụ
>>> import keyword >>> keyword.iskeyword['or'] True4
>>> import keyword
>>> keyword.iskeyword['or']
True
50
Đây luôn là mã thông báo cuối cùng được phát ra bởi
>>> import keyword >>> keyword.iskeyword['or'] True51, trừ khi nó tăng. Các thuộc tính
>>> import keyword >>> keyword.iskeyword['or'] True52 và
>>> import keyword >>> keyword.iskeyword['or'] True53 luôn là
>>> import keyword >>> keyword.iskeyword['or'] True54. Các dòng
>>> import keyword >>> keyword.iskeyword['or'] True55 và
>>> import keyword >>> keyword.iskeyword['or'] True56 luôn nhiều hơn một dòng so với tổng số dòng trong đầu vào và các cột
>>> import keyword >>> keyword.iskeyword['or'] True55 và
>>> import keyword >>> keyword.iskeyword['or'] True56 luôn bằng 0
Đối với hầu hết các ứng dụng, không cần thiết phải lo lắng rõ ràng về
>>> import keyword >>> keyword.iskeyword['or'] True50, bởi vì
>>> import keyword >>> keyword.iskeyword['or'] True51 dừng lặp lại sau khi mã thông báo cuối cùng được tạo ra
>>> import keyword >>> keyword.iskeyword['or'] True6
>>> import keyword >>> keyword.iskeyword['or'] True7
>>> import keyword
>>> keyword.iskeyword['or']
True
81
Loại mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True81 được sử dụng cho bất kỳ mã định danh Python nào, cũng như mọi từ khóa. là các tên Python được đặt trước, nghĩa là chúng không thể được gán cho, chẳng hạn như
>>> import keyword >>> keyword.iskeyword['or'] True83,
>>> import keyword >>> keyword.iskeyword['or'] True84 và
>>> import keyword >>> keyword.iskeyword['or'] True85
>>> import keyword >>> keyword.iskeyword['or'] True3
Để biết mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True81 có phải là từ khóa hay không, hãy sử dụng trên
>>> import keyword >>> keyword.iskeyword['or'] True52
>>> import keyword >>> keyword.iskeyword['or'] True
Như một lưu ý phụ, trong nội bộ, mô-đun
>>> import keyword >>> keyword.iskeyword['or'] True2 sử dụng phương pháp để kiểm tra xem mã thông báo có phải là mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True81 hay không. Các quy tắc đầy đủ để tạo a hơi phức tạp, vì chúng liên quan đến một bảng lớn các ký tự Unicode. Người ta phải luôn sử dụng phương pháp
>>> import keyword >>> keyword.iskeyword['or'] True90 để kiểm tra xem một chuỗi có phải là mã định danh Python hợp lệ hay không, kết hợp với kiểm tra
>>> import keyword >>> keyword.iskeyword['or'] True87. Việc kiểm tra xem một chuỗi có phải là mã định danh hay không bằng cách sử dụng các biểu thức chính quy rất không được khuyến khích
>>> 'α'.isidentifier[] True >>> 'or'.isidentifier[] True
>>> import keyword
>>> keyword.iskeyword['or']
True
94
Loại mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True94 được sử dụng cho bất kỳ chữ số nào, bao gồm chữ số nguyên [thập phân], chữ số nguyên nhị phân, bát phân và thập lục phân, số dấu phẩy động [bao gồm ký hiệu khoa học] và chữ số ảo [như
>>> import keyword >>> keyword.iskeyword['or'] True96]
>>> import keyword >>> keyword.iskeyword['or'] True5
Lưu ý rằng mặc dù các chữ như
>>> import keyword >>> keyword.iskeyword['or'] True97 là một loại
>>> import keyword >>> keyword.iskeyword['or'] True98 duy nhất, nhưng chúng được mã hóa thành
>>> import keyword >>> keyword.iskeyword['or'] True94 [
>>> import keyword >>> keyword.iskeyword['or'] True400],
>>> import keyword >>> keyword.iskeyword['or'] True401 [
>>> import keyword >>> keyword.iskeyword['or'] True402],
>>> import keyword >>> keyword.iskeyword['or'] True94 [
>>> import keyword >>> keyword.iskeyword['or'] True404]
>>> import keyword >>> keyword.iskeyword['or'] True8
Chữ số không hợp lệ có thể mã hóa dưới dạng nhiều chữ số
>>> import keyword >>> keyword.iskeyword['or'] True9
Một lợi thế của việc sử dụng
>>> import keyword >>> keyword.iskeyword['or'] True2 so với
>>> import keyword >>> keyword.iskeyword['or'] True406 là các số dấu phẩy động không được làm tròn ở giai đoạn mã thông báo, vì vậy có thể truy cập toàn bộ thông tin đầu vào
>>> import keyword >>> keyword.iskeyword['or'] True40
Điều này có thể được sử dụng, ví dụ, để bọc các số dấu phẩy động với một loại hỗ trợ độ chính xác tùy ý, chẳng hạn như
>>> import keyword >>> keyword.iskeyword['or'] True407. xem
Trong Python >=3. 6, chữ số có thể có , như
>>> import keyword >>> keyword.iskeyword['or'] True408
>>> import keyword >>> keyword.iskeyword['or'] True41
Trong Trăn 3. 5, điều này sẽ mã hóa dưới dạng hai mã thông báo,
>>> import keyword >>> keyword.iskeyword['or'] True94 [
>>> import keyword >>> keyword.iskeyword['or'] True410] và
>>> import keyword >>> keyword.iskeyword['or'] True81 [
>>> import keyword >>> keyword.iskeyword['or'] True412] [và sẽ không hợp lệ về mặt cú pháp trong bất kỳ ngữ cảnh nào]
>>> import keyword >>> keyword.iskeyword['or'] True42
Trong phần này, chúng ta sẽ xem cách sử dụng
>>> import keyword >>> keyword.iskeyword['or'] True2 để nhập tính năng này vào Python 3. 5
>>> import keyword
>>> keyword.iskeyword['or']
True
414
Loại mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True414 khớp với bất kỳ chuỗi ký tự nào, bao gồm chuỗi trích dẫn đơn, chuỗi trích dẫn kép, chuỗi trích dẫn ba đơn và kép [i. e. , chuỗi nhiều dòng hoặc “docstrings”], raw, “unicode”, byte và f-strings [Python 3. 6+]
>>> import keyword >>> keyword.iskeyword['or'] True43
Lưu ý rằng mặc dù Python hoàn toàn nối các chuỗi ký tự, nhưng
>>> import keyword >>> keyword.iskeyword['or'] True2 mã hóa chúng một cách riêng biệt
>>> import keyword >>> keyword.iskeyword['or'] True44
Trong trường hợp chuỗi thô, “unicode”, byte và chuỗi f, tiền tố chuỗi được bao gồm trong chuỗi được mã hóa
>>> import keyword >>> keyword.iskeyword['or'] True45
chuỗi f [Python 3. 6+] được phân tích thành một mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True414 duy nhất
>>> import keyword >>> keyword.iskeyword['or'] True46
Hàm
>>> import keyword >>> keyword.iskeyword['or'] True418 có thể được sử dụng để phân tích các chuỗi định dạng [bao gồm cả chuỗi f]
>>> import keyword >>> keyword.iskeyword['or'] True47
Để lấy giá trị chuỗi từ một chuỗi ký tự được mã hóa [i. e. , để loại bỏ các ký tự trích dẫn], hãy sử dụng
>>> import keyword >>> keyword.iskeyword['or'] True419. Điều này được khuyến nghị hơn là cố gắng loại bỏ các dấu ngoặc kép theo cách thủ công, dễ bị lỗi hoặc sử dụng
>>> import keyword >>> keyword.iskeyword['or'] True420 thô, có thể thực thi mã tùy ý trong trường hợp chuỗi f
>>> import keyword >>> keyword.iskeyword['or'] True48
Hành vi lỗi
Nếu một chuỗi được trích dẫn không được mở, thì dấu phân cách chuỗi mở được mã hóa thành và phần còn lại được mã hóa như thể nó không có trong một chuỗi
>>> import keyword >>> keyword.iskeyword['or'] True49
Hành vi này có thể hữu ích để xử lý các tình huống lỗi. Ví dụ: nếu bạn định tạo một công cụ đánh dấu cú pháp bằng cách sử dụng
>>> import keyword >>> keyword.iskeyword['or'] True2, bạn có thể không nhất thiết muốn một chuỗi không được đóng để đánh dấu phần còn lại của tài liệu dưới dạng một chuỗi [những thứ như vậy phổ biến trong môi trường chỉnh sửa “trực tiếp”]
Tuy nhiên, nếu một chuỗi trích dẫn ba [i. e. , chuỗi nhiều dòng hoặc “docstring”] không được đóng,
>>> import keyword >>> keyword.iskeyword['or'] True2 sẽ tăng khi đạt đến nó
>>> import keyword >>> keyword.iskeyword['or'] True60
Hành vi này có thể gây phiền nhiễu để giải quyết trong thực tế. Đối với nhiều ứng dụng, cách chính xác để xử lý tình huống này là xem xét rằng vì chuỗi không đóng là nhiều dòng, nên phần còn lại của đầu vào từ nơi ký tự được nâng lên nằm bên trong chuỗi không đóng.
Lưu ý cuối cùng, hãy lưu ý rằng có thể xây dựng các chuỗi ký tự mã hóa mà không có bất kỳ lỗi nào, nhưng tăng
>>> import keyword >>> keyword.iskeyword['or'] True426 khi được trình thông dịch phân tích cú pháp
>>> import keyword >>> keyword.iskeyword['or'] True61
Để kiểm tra xem một chuỗi ký tự có hợp lệ hay không, bạn có thể sử dụng hàm
>>> import keyword >>> keyword.iskeyword['or'] True419, đây là hàm an toàn để sử dụng cho đầu vào không đáng tin cậy
>>> import keyword >>> keyword.iskeyword['or'] True62
>>> import keyword
>>> keyword.iskeyword['or']
True
428
Loại mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True428 đại diện cho một ký tự xuống dòng [
>>> import keyword >>> keyword.iskeyword['or'] True430 hoặc
>>> import keyword >>> keyword.iskeyword['or'] True431] kết thúc một dòng logic của mã Python. Các dòng mới không kết thúc một dòng logic sử dụng mã Python
>>> import keyword >>> keyword.iskeyword['or'] True63
Các dòng mới kiểu Windows [
>>> import keyword >>> keyword.iskeyword['or'] True431] được mã hóa thành một mã thông báo duy nhất
>>> import keyword >>> keyword.iskeyword['or'] True64
Bắt đầu từ Python 3. 6. 7 và 3. 7. 1 bản phát hành bản vá,
>>> import keyword >>> keyword.iskeyword['or'] True428 được phát ra ở cuối tất cả đầu vào mã hóa ngay cả khi nó không kết thúc bằng một dòng mới [ngoại trừ các dòng chỉ là nhận xét]. Thay đổi này được thực hiện để thống nhất với tokenize nội bộ. mô-đun c được sử dụng bởi chính Python. Các
>>> import keyword >>> keyword.iskeyword['or'] True428 ngầm định có
>>> import keyword >>> keyword.iskeyword['or'] True53 được đặt thành
>>> import keyword >>> keyword.iskeyword['or'] True54. Thay đổi này không được thực hiện đối với Python 3. 5, đã có trong. Các ví dụ trong tài liệu này đều sử dụng 3. 6. 7+ hành vi. Nếu muốn nhất quán, người ta luôn có thể buộc đầu vào kết thúc bằng một dòng mới [đây là lý do tại sao mọi ví dụ trong tài liệu này đều có một dòng mới ở cuối]
>>> import keyword
>>> keyword.iskeyword['or']
True
438
>>> import keyword
>>> keyword.iskeyword['or']
True
439
Loại mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True438 đại diện cho thụt đầu dòng cho các khối được thụt lề. Bản thân phần thụt lề [văn bản từ đầu dòng đến ký tự không phải khoảng trắng đầu tiên] nằm trong thuộc tính ________ 152.
>>> import keyword >>> keyword.iskeyword['or'] True438 được phát ra một lần trên mỗi khối văn bản thụt lề, không phải một lần trên mỗi dòng
Loại mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True439 đại diện cho một vết lõm. Mỗi mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True438 được khớp với mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True439 tương ứng. Thuộc tính
>>> import keyword >>> keyword.iskeyword['or'] True52 của
>>> import keyword >>> keyword.iskeyword['or'] True439 luôn là
>>> import keyword >>> keyword.iskeyword['or'] True54. Vị trí
>>> import keyword >>> keyword.iskeyword['or'] True55 và
>>> import keyword >>> keyword.iskeyword['or'] True56 của mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True439 là vị trí đầu tiên trong dòng sau dấu thụt [ngay cả khi có nhiều
>>> import keyword >>> keyword.iskeyword['or'] True439 liên tiếp]
Xét ví dụ giả sau
>>> import keyword >>> keyword.iskeyword['or'] True65
Có một
>>> import keyword >>> keyword.iskeyword['or'] True438 trước khối
>>> import keyword >>> keyword.iskeyword['or'] True454, một
>>> import keyword >>> keyword.iskeyword['or'] True438 trước
>>> import keyword >>> keyword.iskeyword['or'] True456 và hai
>>> import keyword >>> keyword.iskeyword['or'] True457 trước
>>> import keyword >>> keyword.iskeyword['or'] True458
>>> import keyword >>> keyword.iskeyword['or'] True438 không được sử dụng để thụt đầu dòng trên phần tiếp theo của dòng
>>> import keyword >>> keyword.iskeyword['or'] True66
Thụt đầu dòng có thể là bất kỳ số khoảng trắng hoặc tab nào. Hạn chế duy nhất là mọi mức thụt lề không thụt vào phải khớp với mức thụt lề ngoài trước đó. Nếu một vết lõm không khớp với bất kỳ mức độ thụt lề bên ngoài nào, ________ 151 sẽ tăng
>>> import keyword >>> keyword.iskeyword['or'] True67
Mức thụt đầu dòng tại một điểm cụ thể trong luồng mã thông báo có thể được xác định bằng cách tăng và giảm bộ đếm cho mỗi mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True438 và
>>> import keyword >>> keyword.iskeyword['or'] True439 hoặc nếu khoảng cách thụt đầu dòng chính xác được yêu cầu, bằng cách duy trì một ngăn xếp chuỗi
>>> import keyword >>> keyword.iskeyword['or'] True438 [ mà Python cho phép khác nhau . xem
>>> import keyword
>>> keyword.iskeyword['or']
True
465
>>> import keyword
>>> keyword.iskeyword['or']
True
466
Mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True465 và
>>> import keyword >>> keyword.iskeyword['or'] True466 được mã hóa thành. Tuy nhiên, do một lỗi xuất hiện trong các phiên bản Python trước 3. 7, thuộc tính
>>> import keyword >>> keyword.iskeyword['or'] True470 của các mã thông báo này sẽ là
>>> import keyword >>> keyword.iskeyword['or'] True401 thay vì loại chính xác
>>> import keyword >>> keyword.iskeyword['or'] True68
Lỗi này đã được sửa trong Python 3. 7
>>> import keyword >>> keyword.iskeyword['or'] True69
>>> import keyword
>>> keyword.iskeyword['or']
True
401
>>> import keyword >>> keyword.iskeyword['or'] True401 là loại mã thông báo chung cho tất cả toán tử, dấu phân cách và dấu chấm lửng bằng chữ. Điều này không bao gồm các ký tự và toán tử không được trình phân tích cú pháp nhận dạng [chúng được phân tích cú pháp dưới dạng ]
Khi sử dụng
>>> import keyword >>> keyword.iskeyword['or'] True51, loại mã thông báo cho toán tử, dấu phân cách hoặc mã thông báo bằng dấu chấm lửng sẽ là
>>> import keyword >>> keyword.iskeyword['or'] True401. Để có được loại mã thông báo chính xác, hãy sử dụng thuộc tính
>>> import keyword >>> keyword.iskeyword['or'] True470 của têntuple.
>>> import keyword >>> keyword.iskeyword['or'] True478 tương đương với
>>> import keyword >>> keyword.iskeyword['or'] True479 đối với các loại mã thông báo còn lại [với hai trường hợp ngoại lệ, xem ghi chú bên dưới]
>>> import keyword >>> keyword.iskeyword['or'] True70
Bảng sau liệt kê tất cả các loại
>>> import keyword >>> keyword.iskeyword['or'] True401 chính xác và các ký tự tương ứng của chúng
Loại mã thông báo chính xác
Chuỗi giá trị
>>> import keyword >>> keyword.iskeyword['or'] True481
>>> import keyword >>> keyword.iskeyword['or'] True482
>>> import keyword >>> keyword.iskeyword['or'] True483
>>> import keyword >>> keyword.iskeyword['or'] True484
>>> import keyword >>> keyword.iskeyword['or'] True485
>>> import keyword >>> keyword.iskeyword['or'] True486
>>> import keyword >>> keyword.iskeyword['or'] True487
>>> import keyword >>> keyword.iskeyword['or'] True488
>>> import keyword >>> keyword.iskeyword['or'] True489
>>> import keyword >>> keyword.iskeyword['or'] True490
>>> import keyword >>> keyword.iskeyword['or'] True491
>>> import keyword >>> keyword.iskeyword['or'] True492
>>> import keyword >>> keyword.iskeyword['or'] True493
>>> import keyword >>> keyword.iskeyword['or'] True494
>>> import keyword >>> keyword.iskeyword['or'] True495
>>> import keyword >>> keyword.iskeyword['or'] True402
>>> import keyword >>> keyword.iskeyword['or'] True497
>>> import keyword >>> keyword.iskeyword['or'] True498
>>> import keyword >>> keyword.iskeyword['or'] True499
>>> import keyword >>> keyword.iskeyword['or'] True600
>>> import keyword >>> keyword.iskeyword['or'] True601
>>> import keyword >>> keyword.iskeyword['or'] True602
>>> import keyword >>> keyword.iskeyword['or'] True603
`
>>> import keyword >>> keyword.iskeyword['or'] True604
>>> import keyword >>> keyword.iskeyword['or'] True605
>>> import keyword >>> keyword.iskeyword['or'] True606
>>> import keyword >>> keyword.iskeyword['or'] True607
>>> import keyword >>> keyword.iskeyword['or'] True608
>>> import keyword >>> keyword.iskeyword['or'] True609
>>> import keyword >>> keyword.iskeyword['or'] True610
>>> import keyword >>> keyword.iskeyword['or'] True611
>>> import keyword >>> keyword.iskeyword['or'] True612
>>> import keyword >>> keyword.iskeyword['or'] True613
>>> import keyword >>> keyword.iskeyword['or'] True614
>>> import keyword >>> keyword.iskeyword['or'] True615
>>> import keyword >>> keyword.iskeyword['or'] True616
>>> import keyword >>> keyword.iskeyword['or'] True617
>>> import keyword >>> keyword.iskeyword['or'] True618
>>> import keyword >>> keyword.iskeyword['or'] True619
>>> import keyword >>> keyword.iskeyword['or'] True620
>>> import keyword >>> keyword.iskeyword['or'] True621
>>> import keyword >>> keyword.iskeyword['or'] True622
>>> import keyword >>> keyword.iskeyword['or'] True623
>>> import keyword >>> keyword.iskeyword['or'] True624
>>> import keyword >>> keyword.iskeyword['or'] True625
>>> import keyword >>> keyword.iskeyword['or'] True626
>>> import keyword >>> keyword.iskeyword['or'] True627
>>> import keyword >>> keyword.iskeyword['or'] True628
>>> import keyword >>> keyword.iskeyword['or'] True629
>>> import keyword >>> keyword.iskeyword['or'] True630
>>> import keyword >>> keyword.iskeyword['or'] True631
>>> import keyword >>> keyword.iskeyword['or'] True632
>>> import keyword >>> keyword.iskeyword['or'] True633
>>> import keyword >>> keyword.iskeyword['or'] True634
>>> import keyword >>> keyword.iskeyword['or'] True635
>>> import keyword >>> keyword.iskeyword['or'] True636
>>> import keyword >>> keyword.iskeyword['or'] True637
>>> import keyword >>> keyword.iskeyword['or'] True638
>>> import keyword >>> keyword.iskeyword['or'] True639
>>> import keyword >>> keyword.iskeyword['or'] True640
>>> import keyword >>> keyword.iskeyword['or'] True641
>>> import keyword >>> keyword.iskeyword['or'] True642
>>> import keyword >>> keyword.iskeyword['or'] True643
>>> import keyword >>> keyword.iskeyword['or'] True644
>>> import keyword >>> keyword.iskeyword['or'] True645
>>> import keyword >>> keyword.iskeyword['or'] True646
>>> import keyword >>> keyword.iskeyword['or'] True647
>>> import keyword >>> keyword.iskeyword['or'] True648
>>> import keyword >>> keyword.iskeyword['or'] True649
>>> import keyword >>> keyword.iskeyword['or'] True650
`
>>> import keyword >>> keyword.iskeyword['or'] True651
>>> import keyword >>> keyword.iskeyword['or'] True652
>>> import keyword >>> keyword.iskeyword['or'] True653
>>> import keyword >>> keyword.iskeyword['or'] True654
>>> import keyword >>> keyword.iskeyword['or'] True655
>>> import keyword >>> keyword.iskeyword['or'] True656
>>> import keyword >>> keyword.iskeyword['or'] True657
>>> import keyword >>> keyword.iskeyword['or'] True658
>>> import keyword >>> keyword.iskeyword['or'] True659
>>> import keyword >>> keyword.iskeyword['or'] True660
>>> import keyword >>> keyword.iskeyword['or'] True661
>>> import keyword >>> keyword.iskeyword['or'] True662
>>> import keyword >>> keyword.iskeyword['or'] True663
>>> import keyword >>> keyword.iskeyword['or'] True664
>>> import keyword >>> keyword.iskeyword['or'] True665
>>> import keyword >>> keyword.iskeyword['or'] True666
>>> import keyword >>> keyword.iskeyword['or'] True465
>>> import keyword >>> keyword.iskeyword['or'] True668
>>> import keyword >>> keyword.iskeyword['or'] True466
>>> import keyword >>> keyword.iskeyword['or'] True670
>>> import keyword >>> keyword.iskeyword['or'] True671
>>> import keyword >>> keyword.iskeyword['or'] True672
>>> import keyword
>>> keyword.iskeyword['or']
True
673
>>> import keyword
>>> keyword.iskeyword['or']
True
674
Các loại mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True673 và
>>> import keyword >>> keyword.iskeyword['or'] True674 được sử dụng để mã hóa các từ khóa
>>> import keyword >>> keyword.iskeyword['or'] True677 và
>>> import keyword >>> keyword.iskeyword['or'] True678 trong Python 3. 5 và 3. 6. Chúng không tồn tại trong Python 3. 7+
Trong Trăn 3. 5 và 3. 6,
>>> import keyword >>> keyword.iskeyword['or'] True677 và
>>> import keyword >>> keyword.iskeyword['or'] True678 là từ khóa giả. Để hỗ trợ quá trình chuyển đổi trong việc bổ sung các từ khóa mới,
>>> import keyword >>> keyword.iskeyword['or'] True677 và
>>> import keyword >>> keyword.iskeyword['or'] True678 được giữ làm tên biến hợp lệ bên ngoài khối
>>> import keyword >>> keyword.iskeyword['or'] True683
>>> import keyword >>> keyword.iskeyword['or'] True71
Để hỗ trợ điều này, trong Python 3. 5 và 3. 6 khi gặp phải
>>> import keyword >>> keyword.iskeyword['or'] True683,
>>> import keyword >>> keyword.iskeyword['or'] True2 sẽ theo dõi mức độ thụt đầu dòng của nó và tất cả các mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True677 và
>>> import keyword >>> keyword.iskeyword['or'] True678 được lồng bên dưới nó được mã hóa lần lượt là
>>> import keyword >>> keyword.iskeyword['or'] True673 và
>>> import keyword >>> keyword.iskeyword['or'] True674 [bao gồm cả
>>> import keyword >>> keyword.iskeyword['or'] True678 từ
>>> import keyword >>> keyword.iskeyword['or'] True683]. Mặt khác,
>>> import keyword >>> keyword.iskeyword['or'] True677 và
>>> import keyword >>> keyword.iskeyword['or'] True678 được mã hóa thành
>>> import keyword >>> keyword.iskeyword['or'] True81, như trong ví dụ trên
>>> import keyword >>> keyword.iskeyword['or'] True72
Trong Trăn 3. 7,
>>> import keyword >>> keyword.iskeyword['or'] True678 và
>>> import keyword >>> keyword.iskeyword['or'] True677 là các từ khóa phù hợp và được mã hóa giống như tất cả các từ khóa khác. Trong Trăn 3. 7, các loại mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True673 và
>>> import keyword >>> keyword.iskeyword['or'] True674 đã bị xóa khỏi mô-đun
>>> import keyword >>> keyword.iskeyword['or'] True8
>>> import keyword >>> keyword.iskeyword['or'] True73
Trong Trăn 3. 8, mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True674 và
>>> import keyword >>> keyword.iskeyword['or'] True673 đã được thêm lại vào mô-đun
>>> import keyword >>> keyword.iskeyword['or'] True8, nhưng chúng không được mã hóa theo mặc định [hành vi giống như trong 3. 7]. Họ chỉ tạo điều kiện thuận lợi cho cờ
>>> import keyword >>> keyword.iskeyword['or'] True704 mới thành
>>> import keyword >>> keyword.iskeyword['or'] True705 cho phép phân tích cú pháp Python như các phiên bản cũ hơn
>>> import keyword
>>> keyword.iskeyword['or']
True
706
>>> import keyword
>>> keyword.iskeyword['or']
True
707
>>> import keyword >>> keyword.iskeyword['or'] True706 và
>>> import keyword >>> keyword.iskeyword['or'] True707 được bao gồm ở đây cho đầy đủ, vì chúng có trong từ điển. Chúng được sử dụng trong mã thông báo C để mã hóa nhận xét loại, nhưng mã thông báo Python chưa mã hóa chúng. Điều này có lẽ sẽ thay đổi trong tương lai, vì mã thông báo Python thường được tạo để có hành vi giống như mã thông báo C. Nó đã được thêm vào Python 3. 8
>>> import keyword >>> keyword.iskeyword['or'] True74
>>> import keyword
>>> keyword.iskeyword['or']
True
711
>>> import keyword >>> keyword.iskeyword['or'] True711 cũng được bao gồm ở đây cho đầy đủ. Nó có trong từ điển, nhưng nó không thực sự được sử dụng ở bất kỳ đâu trong mô-đun tokenize và không thể được phát ra dưới dạng mã thông báo từ
>>> import keyword >>> keyword.iskeyword['or'] True51. Nó được sử dụng trong mã thông báo C như một phần của trình phân tích cú pháp PEG để xử lý “từ khóa mềm” như
>>> import keyword >>> keyword.iskeyword['or'] True715 và
>>> import keyword >>> keyword.iskeyword['or'] True716 chỉ là từ khóa khi được sử dụng trong các ngữ cảnh nhất định. Nó đã được thêm vào Python 3. 10
>>> import keyword >>> keyword.iskeyword['or'] True75
>>> import keyword
>>> keyword.iskeyword['or']
True
421
Loại ________ 1421 được sử dụng cho bất kỳ ký tự nào không được nhận dạng. Đầu vào mã hóa các
>>> import keyword >>> keyword.iskeyword['or'] True421 không thể là Python hợp lệ, nhưng loại mã thông báo này được sử dụng để các ứng dụng xử lý mã thông báo có thể thực hiện khôi phục lỗi, vì phần còn lại của luồng đầu vào được mã hóa bình thường. Nó cũng có thể được sử dụng để xử lý các phần mở rộng cho cú pháp Python [xem tài liệu]. Mỗi ký tự không được nhận dạng được mã hóa riêng
>>> import keyword >>> keyword.iskeyword['or'] True76
>>> import keyword >>> keyword.iskeyword['or'] True421 cũng được sử dụng cho các chuỗi trích dẫn đơn không được đóng trước một dòng mới. Xem phần để biết thêm thông tin
>>> import keyword >>> keyword.iskeyword['or'] True49
Nếu chuỗi được tiếp tục và không được đóng lại, toàn bộ chuỗi sẽ được mã hóa dưới dạng mã thông báo lỗi. Mặt khác, chỉ dấu phân cách trích dẫn bắt đầu là
>>> import keyword >>> keyword.iskeyword['or'] True78
Trong trường hợp các chuỗi trích dẫn đơn lẻ không được đóng tiếp tục, khoảng trắng trước chuỗi cũng được mã hóa là
>>> import keyword >>> keyword.iskeyword['or'] True421
>>> import keyword >>> keyword.iskeyword['or'] True79
Điều này không áp dụng cho các chuỗi tiếp tục không được đóng
>>> import keyword >>> keyword.iskeyword['or'] True30
Do đó, mã xử lý
>>> import keyword >>> keyword.iskeyword['or'] True421 cụ thể cho các chuỗi không được đóng nên kiểm tra
>>> import keyword >>> keyword.iskeyword['or'] True724
>>> import keyword
>>> keyword.iskeyword['or']
True
5
Loại mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True5 đại diện cho nhận xét. Nếu một nhận xét kéo dài trên nhiều dòng, thì mỗi dòng sẽ được mã hóa riêng
>>> import keyword >>> keyword.iskeyword['or'] True31
Loại mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True5 chỉ tồn tại trong thư viện chuẩn Triển khai Python của
>>> import keyword >>> keyword.iskeyword['or'] True2. Việc triển khai C được trình thông dịch sử dụng bỏ qua các nhận xét. Trong các phiên bản Python trước 3. 7,
>>> import keyword >>> keyword.iskeyword['or'] True5 chỉ có thể nhập được từ mô-đun
>>> import keyword >>> keyword.iskeyword['or'] True2. Trong 3. 7, nó cũng được thêm vào mô-đun
>>> import keyword >>> keyword.iskeyword['or'] True8
>>> import keyword
>>> keyword.iskeyword['or']
True
6
Loại mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True6 đại diện cho các ký tự xuống dòng [
>>> import keyword >>> keyword.iskeyword['or'] True430 hoặc
>>> import keyword >>> keyword.iskeyword['or'] True431] không kết thúc các dòng mã logic. Các dòng mới kết thúc các dòng logic của vùng mã Python được mã hóa bằng loại mã thông báo
Có hai tình huống mà các dòng mới được mã hóa là
>>> import keyword >>> keyword.iskeyword['or'] True6
Các dòng mới kết thúc các dòng được tiếp tục sau dấu ngoặc nhọn
>>> import keyword >>> keyword.iskeyword['or'] True
32Dòng mới kết thúc dòng trống hoặc dòng chỉ có nhận xét
>>> import keyword >>> keyword.iskeyword['or'] True
33
Lưu ý rằng các dòng mới được thoát [trước
>>> import keyword >>> keyword.iskeyword['or'] True738] được coi là khoảng trắng, nghĩa là chúng hoàn toàn không mã hóa. Do đó, bạn phải luôn sử dụng số dòng trong thuộc tính
>>> import keyword >>> keyword.iskeyword['or'] True55 và
>>> import keyword >>> keyword.iskeyword['or'] True56 của bộ tên
>>> import keyword >>> keyword.iskeyword['or'] True741. Không bao giờ cố gắng xác định số dòng bằng cách đếm và
>>> import keyword >>> keyword.iskeyword['or'] True6 mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True34
Loại mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True6 chỉ tồn tại trong thư viện chuẩn Triển khai Python của
>>> import keyword >>> keyword.iskeyword['or'] True2. Việc triển khai C được sử dụng bởi trình thông dịch chỉ có. Trong các phiên bản Python trước 3. 7,
>>> import keyword >>> keyword.iskeyword['or'] True6 chỉ có thể nhập được từ mô-đun
>>> import keyword >>> keyword.iskeyword['or'] True2. Trong 3. 7, nó cũng được thêm vào mô-đun
>>> import keyword >>> keyword.iskeyword['or'] True8
>>> import keyword
>>> keyword.iskeyword['or']
True
7
>>> import keyword >>> keyword.iskeyword['or'] True7 là một loại mã thông báo đặc biệt đại diện cho mã hóa của đầu vào. Nó luôn là mã thông báo đầu tiên được phát ra bởi
>>> import keyword >>> keyword.iskeyword['or'] True51, trừ khi mã hóa được phát hiện không hợp lệ, trong trường hợp đó, nó sẽ tăng. Mã hóa được phát hiện thông qua nhận xét được định dạng PEP 263 ở một trong hai dòng đầu tiên của đầu vào [như
>>> import keyword >>> keyword.iskeyword['or'] True754; các nhận xét như vậy vẫn được mã hóa dưới dạng a] hoặc ký tự Unicode BOM
Mã hóa được phát hiện nằm trong thuộc tính
>>> import keyword >>> keyword.iskeyword['or'] True52 của
>>> import keyword >>> keyword.iskeyword['or'] True741.
>>> import keyword >>> keyword.iskeyword['or'] True7 là loại mã thông báo duy nhất mà
>>> import keyword >>> keyword.iskeyword['or'] True759 không xuất hiện theo nghĩa đen trong đầu vào. Mã hóa mặc định là
>>> import keyword >>> keyword.iskeyword['or'] True760
Nếu bạn chỉ muốn phát hiện mã hóa và không muốn gì khác, hãy sử dụng. Nếu bạn chỉ cần mã hóa để chuyển tới
>>> import keyword >>> keyword.iskeyword['or'] True762, hãy sử dụng
Số dòng và cột ________ 155 n ________ 156 của
>>> import keyword >>> keyword.iskeyword['or'] True7 sẽ luôn là ________ 2767
>>> import keyword >>> keyword.iskeyword['or'] True35
Mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True7 thường không được sử dụng khi xử lý mã thông báo, mặc dù sự hiện diện được đảm bảo của nó với tư cách là mã thông báo đầu tiên có thể hữu ích khi xử lý mã thông báo vì nó sẽ đảm bảo rằng mọi loại mã thông báo khác sẽ có một số mã thông báo trước đó từ luồng [xem phần ]
Nói một cách chính xác,
>>> import keyword >>> keyword.iskeyword['or'] True52 của mọi mã thông báo trong luồng mã thông báo phải được giải mã bằng cách mã hóa mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True7 [e. g. , nếu mã hóa là
>>> import keyword >>> keyword.iskeyword['or'] True771, mã thông báo không thể bao gồm bất kỳ ký tự không phải ASCII nào]
Loại mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True7 chỉ tồn tại trong thư viện chuẩn Triển khai Python của
>>> import keyword >>> keyword.iskeyword['or'] True2. Việc triển khai C được trình thông dịch sử dụng sẽ phát hiện mã hóa riêng. Trong các phiên bản Python trước 3. 7,
>>> import keyword >>> keyword.iskeyword['or'] True7 chỉ có thể nhập được từ mô-đun
>>> import keyword >>> keyword.iskeyword['or'] True2. Trong 3. 7, nó cũng được thêm vào mô-đun
>>> import keyword >>> keyword.iskeyword['or'] True8
>>> import keyword
>>> keyword.iskeyword['or']
True
0
Số loại mã thông báo [không bao gồm hoặc chính nó]
Trong Trăn 3. 5 và 3. 6,
>>> import keyword >>> keyword.iskeyword['or'] True779 và
>>> import keyword >>> keyword.iskeyword['or'] True780 khác nhau, vì , , và nằm trong
>>> import keyword >>> keyword.iskeyword['or'] True2 nhưng không nằm trong
>>> import keyword >>> keyword.iskeyword['or'] True8. Trong các phiên bản này,
>>> import keyword >>> keyword.iskeyword['or'] True0 cũng không có trong từ điển
>>> import keyword >>> keyword.iskeyword['or'] True1
Giá trị của
>>> import keyword >>> keyword.iskeyword['or'] True0 khác nhau giữa các phiên bản Python. Trăn 3. 7 đã xóa và mã thông báo. Trăn 3. 8 đã thêm các mã thông báo mới , , và , và được thêm lại và. Trong Trăn 3. 10, đã được thêm vào
>>> import keyword >>> keyword.iskeyword['or'] True36
>>> import keyword >>> keyword.iskeyword['or'] True37
>>> import keyword >>> keyword.iskeyword['or'] True38
>>> import keyword >>> keyword.iskeyword['or'] True39[ 1 ] [,]
Do một lỗi, mã thông báo
>>> import keyword >>> keyword.iskeyword['or'] True470 cho
>>> import keyword >>> keyword.iskeyword['or'] True465 và
>>> import keyword >>> keyword.iskeyword['or'] True466 là
>>> import keyword >>> keyword.iskeyword['or'] True401 trong các phiên bản Python trước 3. 7. Thấy