python how to “negate” value : if true return false, if false return true

后端 未结 3 847
情歌与酒
情歌与酒 2020-12-15 15:49
if myval == 0:
   nyval=1
if myval == 1:
   nyval=0

Is there a better way to do a toggle in python, like a nyvalue = not myval ?

相关标签:
3条回答
  • 2020-12-15 16:18

    In python, not is a boolean operator which gets the opposite of a value:

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

    And True == 1 and False == 0 (if you need to convert it to an integer, you can use int())

    0 讨论(0)
  • 2020-12-15 16:19

    Use not, for example:

    return not myval
    
    0 讨论(0)
  • 2020-12-15 16:26

    Use the not boolean operator:

    nyval = not myval
    

    not returns a boolean value (True or False):

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

    If you must have an integer, cast it back:

    nyval = int(not myval)
    

    However, the python bool type is a subclass of int, so this may not be needed:

    >>> int(not 0)
    1
    >>> int(not 1)
    0
    >>> not 0 == 1
    True
    >>> not 1 == 0
    True
    
    0 讨论(0)
提交回复
热议问题