python如何“否定”值:如果真返回假,如果假返回真

Posted

技术标签:

【中文标题】python如何“否定”值:如果真返回假,如果假返回真【英文标题】:python how to "negate" value : if true return false, if false return true 【发布时间】:2013-06-14 14:50:42 【问题描述】:
if myval == 0:
   nyval=1
if myval == 1:
   nyval=0

有没有更好的方法在 python 中进行切换,比如 nyvalue = not myval ?

【问题讨论】:

【参考方案1】:

使用not boolean operator:

nyval = not myval

not 返回一个 boolean 值(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

【讨论】:

【参考方案2】:

在 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

【讨论】:

【参考方案4】:
variable = not (False | variable)

类似于

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

【讨论】:

以上是关于python如何“否定”值:如果真返回假,如果假返回真的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL函数。 如果A1等于1-50数据中的任何一个, 则A2返回“真”, 否则返回“假”, 如何设置函数。

重击“如果 [假];”返回真而不是假——为啥?

Python学习之路8 - 内置方法

Python学习之路8 - 内置方法

Php fetch 返回字符串而不是布尔“真/假”值

在c中将布尔结果打印为“假”或“真”的最佳方法?