Toán tử
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True0 của Python trả về
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True1 nếu toán hạng đơn lẻ ước tính là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True2 và trả về Sai nếu nó ước tính là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True1. Do đó, nó phủ định một cách logic giá trị Boolean ẩn hoặc rõ ràng của toán hạng
Khi bạn đọc qua bài viết, bạn cũng có thể xem video của tôi để được giải thích hỗ trợ
Python Not Operator - Deep Dive
Xem video này trên YouTube
Python không phải toán tử trên Boolean
Bạn có thể áp dụng toán tử
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True0 cho một giá trị Boolean và Python đảo ngược toán hạng Boolean. Do đó, biểu thức
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True5 trở thành
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True1 và
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True7 trở thành
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True2toán hạng. Không Sai Đúng Đúng Sai
Bạn có thể xem những ví dụ đó trong đoạn script sau
>>> not False True >>> not True False
Python không phải toán tử trên số nguyên
Bạn có thể áp dụng toán tử
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True0 cho một giá trị số nguyên. Python chuyển đổi nội bộ giá trị số nguyên thành giá trị Boolean, tôi. e. , tất cả các số nguyên khác 0 sẽ được chuyển đổi thành
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True1 và số nguyên 0 thành
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True2. Boolean kết quả sau đó được đảo ngược bởi toán tử
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True0. Ví dụ: biểu thức
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True43 trở thành
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True2 và
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True45 trở thành
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True1toán hạng. Anot A1False99False-99False0True
Tất cả các số nguyên ngoại trừ 0 được chuyển đổi nội bộ thành giá trị Boolean
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True1. Do đó, các số nguyên 1, 99 và thậm chí -99 dẫn đến phép tính của
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True7 có giá trị là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True2
Bạn có thể xem những ví dụ đó trong đoạn script sau
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True
Python không quá tải toán tử
Thật thú vị, bạn cũng có thể áp dụng toán tử logic NOT trên các đối tượng Python tùy ý. Ý tưởng cơ bản là “tính trung thực” của các đối tượng Python, tôi. e. , mọi đối tượng Python có một giá trị Boolean được liên kết như được xác định bởi phương pháp ma thuật
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True20
Trong đoạn mã sau, bạn tạo một lớp tùy chỉnh có tên là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True21 và sử dụng toán tử “
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True0” trên các thể hiện của lớp này. Bạn định nghĩa rõ ràng phương thức
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True23 để tùy chỉnh hành vi của toán tử not trên các lớp tùy chỉnh của bạn
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True4
Các kết quả đầu ra là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True2
Nếu bạn không ghi đè phương thức ma thuật
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True24, Python sẽ coi tất cả các đối tượng của các đối tượng tùy chỉnh là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True1, vì vậy kết quả sẽ là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True2 cho cả ba đối tượng
Python không phải toán tử trong danh sách
Bạn có thể áp dụng toán tử
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True0 trên các đối tượng tùy ý bao gồm cả danh sách. Mỗi đối tượng danh sách có một giá trị Boolean được liên kết như được xác định bởi phương pháp
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True28—tất cả các danh sách đánh giá là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True1 ngoại trừ danh sách trống. Nếu bạn áp dụng toán tử
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True0 trên danh sách không trống, Python luôn trả về
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True2. Chỉ một danh sách trống sẽ được đánh giá thành
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True1 dưới toán tử
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True0. Đó là lý do tại sao bạn thường thấy biểu thức
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True84 trong câu lệnh if để đảm bảo rằng danh sách không trống trong phần thân khác
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True8
Đầu ra của đoạn mã này là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True0
Python không phải toán tử trên chuỗi
Áp dụng toán tử
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True0 trên chuỗi để kiểm tra xem chuỗi có trống không. Mỗi chuỗi có một giá trị Boolean được liên kết như được xác định bởi
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True86 và tất cả các chuỗi đánh giá là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True1 ngoại trừ chuỗi trống. Nếu bạn áp dụng toán tử
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True0 trên một chuỗi không trống, Python sẽ trả về
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True2. Nếu bạn áp dụng nó cho một chuỗi rỗng, Python sẽ trả về
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True1. Đó là lý do tại sao bạn thường thấy biểu thức
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True01 trong câu lệnh if để đảm bảo rằng chuỗi rỗng trong phần thân if
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True8
Đầu ra của đoạn mã này là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True9
Ưu tiên toán tử không phải Python
Python đánh giá
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True0 trước bất kỳ toán hạng logic nào khác, chẳng hạn như
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True03 hoặc
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True04. Do đó, biểu thức
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True05 sẽ đánh giá
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True06 chứ không phải
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True07
Ví dụ sau đây cho thấy rằng hai cách hiểu đầu tiên về thứ tự ưu tiên của toán tử là giống nhau trong khi cách giải thích thứ ba thì khác. Do đó, toán tử
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True0 được ưu tiên trước toán tử
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True03
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True8
Vì toán tử
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True03 được ưu tiên trước toán tử
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True04 nên toán tử not cũng được ưu tiên trước toán tử
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True04. Đây là bằng chứng
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True2
Hai trường hợp đầu tiên tạo ra kết quả giống nhau vì chúng giống nhau—toán tử not được đánh giá trước
Toán tử logic
là các phím tắt để thực hiện so sánh Boolean, nhưng cũng có thể được sử dụng trên các số nguyên và các đối tượng khác
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True83Trả về
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True1 nếu cả hai toán hạng là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True1 và ngược lại là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True2.
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True87
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True88Trả về
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True1 nếu ít nhất một trong hai toán hạng là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True1, và ngược lại là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True2.
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True92______493Trả về
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True1 nếu toán hạng đơn là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True2 và ngược lại là
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True2.
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True97
Chris
Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính
Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới
Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây