web-dev-qa-db-ja.com

python値を「ネゲート」する方法:trueがfalseを返す場合、falseがtrueを返す場合

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

Nyvalue = not myvalのような、Pythonでトグルを行うより良い方法はありますか?

38
user2239318

notブール演算子 を使用します。

nyval = not myval

notboolean値(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
73
Martijn Pieters

Pythonでは、 not は値の反対を取得するブール演算子です。

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

True == 1およびFalse == 0(整数に変換する必要がある場合は、int()を使用できます)

2
TerryA

not を使用します。例:

return not myval