-5

空の文字列と同じように、空の文字列が False でない理由がわかりません。キャラクターのコレクションはそれ以下ではないと思います。この場合のPythonの目的の根源は何ですか?

>>> "" in 'fdsa'
True
>>> '' in ''
True
>>> 'asdf' in ''
False
>>> 'adsf' is True
False
4

2 に答える 2

6

あなたの質問がよくわかりません。ここでは 2 つの演算子を使用しています。

  1. infor strings は、最初の文字列が 2 番目の文字列の部分文字列かどうかをチェックします。 空の文字列は、他のすべての文字列の部分文字列と見なされます。

  2. isオブジェクトの同一性をテストしTrue、両方の演算子が同じオブジェクトであるかどうかを返します。 'adsf'Trueは明らかに同じオブジェクトではないため、 が得られますFalse

これらの 2 つの演算子はいずれも、ブール コンテキストでの文字列の解釈に関連していません。あなたの質問にも触れているようです。ifたとえば、ブール コンテキストはステートメントの条件になります。Boolean コンテキストでは、空の文字列は として扱われ、空でない文字列は として扱われFalseますTrue。を使用して、オブジェクトがブール コンテキストでどのように動作するかを確認できますbool(obj)

于 2012-07-24T17:26:17.147 に答える
2

文字列のブール値が何であるかを確認したい場合は、次のようにbool()関数を呼び出すことができます。

>>> bool('')
False
>>> bool('asdf')
True

キーワードin( docs ) は、要素がシーケンス内にあるかどうかをテストします。それはあなたが望むものではないと思います。

于 2012-07-24T17:27:47.750 に答える