Phần Tử Không Trong Python
Có thể bạn quan tâm
2. None và các toán tử logic
None là một tập hợp đặc biệt, chỉ có chính nó, mà cũng không phải là chính nó. Không phải là chính nó vì None bao hàm ý nghĩa là thiếu giá trị (denoting lack of value):
>>> type(None) <type 'NoneType'>None tương tác với tất cả các phần tử không:
>>> assert(([] and None) == []) >>> assert(({} and None) == {}) >>> assert((0.0 and None) == 0.0) >>> assert(("" and None) == "") >>> assert((set([]) and None) == set([])) >>> assert((() and None) == ()) >>> assert((0j and None) == 0J) >>> assert((False and None) == False)Nếu ta gọi S là tập hợp các phần tử không, bao gồm chính None, thì với phép toán and, None chính là phần tử không bên phải của S. Ai bảo None không phải là giá trị.
Tuy nhiên:
>>> assert((None and []) == None) >>> assert((None and {}) == None) >>> assert((None and set([])) == None) >>> assert((None and "") == None) >>> assert((None and 0) == None)Tương tự:
>>> assert((None or set([])) == set([])) >>> assert((None or []) == []) >>> assert((None or {}) == {}) >>> assert((None or "") == "") >>> assert((None or 0) == 0) >>> assert((None or 0j) == 0j) >>> assert((None or ()) == ())Nghĩa là None là phần tử không bên phải đối với tập S nói trên trong phép toán or.
Và:
>>> assert(({} or None) is None) >>> assert(([] or None) is None) >>> assert((0 or None) is None) >>> assert((set([]) or None) is None) >>> assert(("" or None) is None) >>> assert((0j or None) is None) >>> assert((() or None) is None) >>> assert((0.0 or None) is None)Như vậy khi None tương tác với các phần tử không, thứ tự các toán hạng là điều bạn cần chú ý.
Phép toán or giữa None và object bất kỳ không phải là phần tử không là ánh xạ đồng nhất bất kể thứ tự phép toán:
>>> set(['a']) or None set(['a']) >>> None or set(['a']) set(['a']) >>> None or "abc" 'abc' >>> "abc" or None 'abc' >>> None or {1:1} {1: 1} >>> {1:1} or None {1: 1}Phép toán and thì luôn cho kết quả None với bất kỳ phần tử nào không phải là phần tử không, không kể thứ tự toán hạng:
>>> assert((None and 1) is None) >>> assert((1 and None) is None) >>> assert(([1] and None) is None) >>> assert((None and [1]) is None) >>> assert(("abc" and None) is None) >>> assert((None and "abc") is None)Một biểu thức logic chứa None có thể trả về None, nghĩa là không có giá trị. Điều này làm cho None trong python trở lên phức tạp và không giống với null trong C# hay nothing trong VB.NET. Trong VB.NET một biểu thức logic luôn luôn trả về giá trị logic.
None là tận cùng (bottom), là nhỏ hơn tất cả.
>>> None < 0.0 == 0 < {} < [1] < "" < () TrueNone không có bất kỳ một method nào, thậm chí chính nó là một method khi được dùng với filter hoặc map (xem phần dưới).
Cuối cùng None là None - đừng băn khoăn (^-^):
>>> None is None True >>> None == None TrueViệc hiểu rõ bản chất của None cùng các tương tác của nó với các phần tử không qua các phép toán logic là RẤT quan trọng khi bạn viết các lệnh if, filter...
Một hàm bất kỳ có thể trả về None nếu bạn viết return None, hoặc không return ở bất kỳ chỗ nào trong hàm. Một hàm như vậy khi tham gia vào biểu thức logic sẽ tạo ra những hiệu ứng mà bạn cần phải nắm rõ bản chất.
Từ khóa » Toán Tử Nào Không Có Trong Python
-
Bài 9: Các Toán Tử Cơ Bản Trong Python
-
Toán Tử Trong Python - Học Lập Trình Python - Viettuts
-
So Sánh Các Toán Tử Is, Is Not Với (==), (!=) - Viblo
-
Toán Tử Trong Python - Viblo
-
Các Loại Toán Tử Trong Python Lập Trình Viên Nào Cũng Cần Nằm Lòng
-
Các Loại Toán Tử Trong Python - T3H
-
Tại Sao Các Toán Tử “và” Và “hoặc” Không Có Trong Python? - HelpEx
-
Chi Tiết Bài Học 9.Toán Tử Trong Python - Vimentor
-
Toán Tử Trong Python - Học Lập Trình
-
Toán Tử So Sánh Trong Python Và Các Phép So Sánh Chuỗi, Số Và List
-
Các Loại Toán Tử (operator) được Hỗ Trợ Trong Python - Góc Học IT
-
Toán Tử Trong Python
-
Kiểu Dữ Liệu Trong Python: Chuỗi, Số, List, Tuple, Set Và Dictionary
-
Nạp Chồng Toán Tử Trong Python
-
Toán Tử Trong Python - Hoclaptrinh
-
Bài 11: Operators - Toán Tử Trong Lập Trình Python - Môi Trường
-
Kiểu Dữ Liệu Boolean Và Các Toán Tử AND OR NOT Trong Python
-
Python – Toán Tử - Phở Code
-
Python (ngôn Ngữ Lập Trình) – Wikipedia Tiếng Việt