Was ist die Verwendung des Tilde-Operators in Python?
Eine Sache, über die ich nachdenken kann, ist, auf beiden Seiten einer Zeichenfolge oder Liste etwas zu tun, z. B. zu überprüfen, ob eine Zeichenfolge palindrom ist oder nicht:
def is_palindromic(s):
return all(s[i] == s[~i] for i in range(len(s) / 2))
Irgendeine andere gute Verwendung?
-False==0
) Es ist verwirrend, da du über das gesprochen hast ~
und ~False == -1
was nicht falsch ist.
__neg__
). Wahrscheinlich hätte ich weiter verwenden sollen True
, z. B. -True == -1
was nicht -2 oder False
oder falsch ist, was es deutlicher mit dem ~True
Ergebnis verknüpft und auch, dass sich die arithmetische Negation von a bool
von seiner logischen Negation unterscheidet. Ich habe nicht versucht, tief zu sein. Ich habe nur 3 Operationen und die zugrunde liegenden speziellen Methoden hervorgehoben, die manchmal verwirrt werden.
~
durch die spezielle Methode implementierte unäre Komplementoperator__invert__
nicht mit demnot
Operator zusammenhängt, der den von__bool__
(oder__nonzero__
in 2.x) zurückgegebenen Wert logisch negiert . Es hat auch nichts mit dem-
unären Negationsoperator zu tun, der von implementiert wird__neg__
. Zum Beispiel~True == -2
, was nichtFalse
oder falsch ist und-False == 0
was immer noch falsch ist.