Cách sử dụng toán tử dấu ngã trong Python là gì?
Một điều tôi có thể nghĩ đến là làm một cái gì đó trong cả hai mặt của một chuỗi hoặc danh sách, chẳng hạn như kiểm tra xem một chuỗi có phải là palindromic hay không:
def is_palindromic(s):
return all(s[i] == s[~i] for i in range(len(s) / 2))
Bất kỳ cách sử dụng tốt khác?
-False==0
) Thật khó hiểu, vì bạn đã nói về ~
, và ~False == -1
đó không phải là Sai.
__neg__
). Có lẽ tôi nên tiếp tục sử dụng True
, ví dụ -True == -1
, không phải là -2 hoặc False
sai, liên kết rõ ràng hơn với ~True
kết quả và cũng là phủ định số học của a bool
khác với phủ định logic của nó. Tôi đã không cố gắng để được sâu sắc. Tôi chỉ làm nổi bật 3 thao tác và các phương thức đặc biệt cơ bản đôi khi bị lẫn lộn.
~
phương__invert__
được thực hiện theo phương thức đặc biệt không liên quan đếnnot
toán tử, điều này phủ nhận một cách hợp lý giá trị được trả về bởi__bool__
(hoặc__nonzero__
trong 2.x). Nó cũng không liên quan đến-
toán tử phủ định đơn nguyên, được thực hiện bởi__neg__
. Ví dụ:~True == -2
không đúngFalse
hoặc sai và-False == 0
vẫn sai.