¿Qué hace el operador ~ en Python [duplicado]

Este es mi intento de entender lo que hace:

>>> ~
SyntaxError: invalid syntax
>>> print ~
SyntaxError: invalid syntax
>>> ~ = cheese
SyntaxError: invalid syntax
>>> ~ = "21"
SyntaxError: invalid syntax
>>> 2 ~ 1
SyntaxError: invalid syntax
>>> ~ = "w"
SyntaxError: invalid syntax
>>> a = "w"
>>> a
'w'
>>> print ~8
-9
>>> print ~w

Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    print ~w
NameError: name 'w' is not defined
>>> print ~"w"

Parece que solo funciona con números, por lo que sería muy útil una explicación y un enlace a alguna documentación.

preguntado el 11 de septiembre de 13 a las 14:09

Pensé que se llamaba tridle -

lo tengo puesto buena autoridad que se pronuncia "twiddle". Sobre el otra mano podría pronunciarse "seleccionar". -

Por amor a lo que crees que es bueno, ¿podrías detenerlo con los votos negativos? ya lo entiendo -

1 Respuestas

~ es un operador unario (es decir, solo toma un argumento) que calcula el bit a bit inversa de su argumento. El resultado es -x - 1, porque en Complemento a dos representación, -x es lo mismo que invertir todos los bits y luego agregar uno.

Respondido el 11 de Septiembre de 13 a las 14:09

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.