web-dev-qa-db-fra.com

python comment "annuler" la valeur: si vrai, retourne faux, si faux, retourne vrai

if myval == 0:
   nyval=1
if myval == 1:
   nyval=0

Y at-il une meilleure façon de faire un bascule en python, comme un nyvalue = not myval?

38
user2239318

Utilisez le not opérateur booléen :

nyval = not myval

not renvoie une valeur booléenne (True ou False):

>>> not 1
False
>>> not 0
True

Si vous devez avoir un entier, relancez-le:

nyval = int(not myval)

Cependant, le type python bool est une sous-classe de int, ce qui n'est peut-être pas nécessaire:

>>> int(not 0)
1
>>> int(not 1)
0
>>> not 0 == 1
True
>>> not 1 == 0
True
73
Martijn Pieters

En python, not est un opérateur booléen qui obtient le contraire d'une valeur:

>>> myval = 0
>>> nyvalue = not myval
>>> nyvalue
True
>>> myval = 1
>>> nyvalue = not myval
>>> nyvalue
False

Et True == 1 Et False == 0 (Si vous devez le convertir en entier, vous pouvez utiliser int()).

2
TerryA

Utilisez not , par exemple:

return not myval
1