Quelle est l'utilisation de l'opérateur tilde en Python?
Une chose à laquelle je peux penser est de faire quelque chose des deux côtés d'une chaîne ou d'une liste, comme vérifier si une chaîne est palindromique ou non:
def is_palindromic(s):
return all(s[i] == s[~i] for i in range(len(s) / 2))
Tout autre bon usage?
-False==0) C'est déroutant, puisque vous parliez de la ~, et ~False == -1ce n'est pas faux.
__neg__). J'aurais probablement dû continuer à utiliser True, par exemple -True == -1, ce qui n'est ni -2 ni Falsefaux, ce qui le relie plus clairement au ~Truerésultat et aussi que la négation arithmétique de a boolest différente de sa négation logique. Je n'essayais pas d'être profond. Je mettais juste en évidence 3 opérations et les méthodes spéciales sous-jacentes qui se confondent parfois.
~implémenté par la méthode spéciale__invert__n'est pas lié à l'notopérateur, ce qui annule logiquement la valeur retournée par__bool__(ou__nonzero__dans 2.x). Il n'est pas non plus lié à l'-opérateur de négation unaire, implémenté par__neg__. Par exemple~True == -2, ce qui n'est pasFalseou faux, et-False == 0ce qui est toujours faux.