Jakie jest zastosowanie operatora tyldy w Pythonie?
Jedną rzeczą, o której mogę pomyśleć, jest zrobienie czegoś po obu stronach łańcucha lub listy, na przykład sprawdzenie, czy łańcuch jest palindromiczny czy nie:
def is_palindromic(s):
return all(s[i] == s[~i] for i in range(len(s) / 2))
Jakieś inne dobre wykorzystanie?
-False==0) To mylące, ponieważ mówiłeś o ~, a ~False == -1które nie jest fałszywe.
__neg__). Prawdopodobnie powinienem był kontynuować True, np. -True == -1Który nie jest -2 lub Falsefałszywy, co bardziej wyraźnie łączy go z powrotem z ~Truewynikiem, a także, że negacja arytmetyczna a boolróżni się od negacji logicznej. Nie próbowałem być głęboki. Właśnie podkreślałem 3 operacje i podstawowe metody specjalne, które czasem się mylą.
~implementowany metodą specjalną__invert__nie jest związany znotoperatorem, co logicznie neguje wartość zwracaną przez__bool__(lub__nonzero__w 2.x). Nie jest również związany z-operatorem jednoargumentowej negacji, implementowanym przez__neg__. Na przykład~True == -2, który nie jestFalsefałszywy lub fałszywy, a-False == 0który nadal jest fałszywy.