1. ホーム
  2. python

[解決済み] not(True) in [False, True]」はなぜFalseを返すのですか?

2022-03-19 20:55:37

質問

こうすれば

>>> False in [False, True]
True

を返します。 True . 単に False がリストに入っています。

でも、そうすると

>>> not(True) in [False, True]
False

を返します。 False . 一方 not(True)False :

>>> not(True)
False

なぜ?

解決方法は?

演算子の優先順位 2.x , 3.x . の優先順位は notin . と等価なわけです。

>>> not ((True) in [False, True])
False

これがあなたの望みです。

>>> (not True) in [False, True]
True


@Benさんのご指摘の通りです。を書かないことをお勧めします。 not(True) より好ましくは not True . 前者は関数呼び出しのように見えますが not は演算子であり、関数ではない。