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 == -1
które nie jest fałszywe.
__neg__
). Prawdopodobnie powinienem był kontynuować True
, np. -True == -1
Który nie jest -2 lub False
fałszywy, co bardziej wyraźnie łączy go z powrotem z ~True
wynikiem, a także, że negacja arytmetyczna a bool
róż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 znot
operatorem, 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 jestFalse
fałszywy lub fałszywy, a-False == 0
który nadal jest fałszywy.