如何"否定"值:如果是真,则返回假,如果是假,则返回真?

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

在Python中有没有更好的方法来执行开关操作,例如 nyvalue = not myval?

4个回答

113
使用not布尔运算符
nyval = not myval

not 返回一个布尔值 (TrueFalse):

>>> 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

3
在Python中,not是一个布尔运算符,用于获取一个值的相反值:
>>> myval = 0
>>> nyvalue = not myval
>>> nyvalue
True
>>> myval = 1
>>> nyvalue = not myval
>>> nyvalue
False

如果需要将 True == 1False == 0 转换为整数,可以使用 int() 函数。


3

例如,使用not

return not myval

0
variable = not (False | variable)

类似于

if variable == True:
    variable = False
elif variable == False:
    variable = True

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接