python как инвертировать значение: если true вернуть false, если false вернуть true

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

Есть ли лучший способ сделать переключение в python, например, nyvalue = not myval?


person user2239318    schedule 18.06.2013    source источник


Ответы (3)


Используйте not логический оператор:

nyval = not myval

not возвращает логическое значение (True или False):

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

Если у вас должно быть целое число, верните его обратно:

nyval = int(not myval)

Однако тип python bool является подклассом int, поэтому это может не понадобиться:

>>> int(not 0)
1
>>> int(not 1)
0
>>> not 0 == 1
True
>>> not 1 == 0
True
person Martijn Pieters    schedule 18.06.2013

В python not — это логический оператор, который получает противоположное значение ценность:

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

И True == 1 и False == 0 (если вам нужно преобразовать его в целое число, вы можете использовать int())

person TerryA    schedule 18.06.2013

Используйте not, например:

return not myval
person Klaus Byskov Pedersen    schedule 18.06.2013