python如何"否定"值:如果true返回false,如果false返回true

use*_*318 40 python boolean negate

if myval == 0:
   nyval=1
if myval == 1:
   nyval=0
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ers 78

使用not布尔运算符:

nyval = not myval
Run Code Online (Sandbox Code Playgroud)

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

>>> not 1
False
>>> not 0
True
Run Code Online (Sandbox Code Playgroud)

如果您必须有一个整数,请将其强制转换:

nyval = int(not myval)
Run Code Online (Sandbox Code Playgroud)

但是,python bool类型是其子类int,因此可能不需要:

>>> int(not 0)
1
>>> int(not 1)
0
>>> not 0 == 1
True
>>> not 1 == 0
True
Run Code Online (Sandbox Code Playgroud)