2017-02-21 23 views
3

、2グループの文字列を比較しますか?は、私はPythonのコンソールでこの<a href="https://i.stack.imgur.com/fojMC.png" rel="nofollow noreferrer">command</a>を実行して異なる結果を返す

>>>S1 = 'HelloWorld' 
>>>S2 = 'HelloWorld' 
>>>S1 is S2 
True 
>>>S1 = 'Hello World' 
>>>S2 = 'Hello World' 
>>>S1 is S2 
False    ---------i think the result is True,why it is False 
+1

これは一般的な動作です。次のスレッドを参照してください:[アイデンティティテストと平等テスト](http://stackoverflow.com/questions/1504717/why-does-comparing-strings-in-python-using-either-or-is-sometimes-produce) –

+0

特に、重複から[この回答](http://stackoverflow.com/a/1504848/5014455)を参照してください。 –

+0

** pycharmでコードを実行している間、**両方の場合にtrueを返します –

答えて

0

is結果は、オブジェクトが同じオブジェクトである場合にのみtrueになります。

==は、オブジェクトの値が同じ場合にtrueになります。

>>> S1 = 'HelloWorld' 
>>> print id(S1) 
4457604464 
>>> S2 = 'HelloWorld' 
>>> print id(S2) 
4457604464 
>>> S1 is S2 
True 

上記コード手段S1S2は同じであるobject.Andそれらは同じメモリS1S2あるlocation.So有します。

>>> S1 = 'Hello World' 
>>> S2 = 'Hello World' 
>>> print id(S1) 
4457604320 
>>> print id(S2) 
4457604272 
>>> S1 is S2 
False 

は今、彼らは別のオブジェクトですので、S1S2ではありません。

+0

>>> S1 = 'Hello World' >>> S2 = 'Hello World' >>> S1はS2 False - ----私は結果が真であると思います、なぜそれが偽であるのですか? – Sigma65535

+1

@ Sigma65535「S1」と「S2」は*同じオブジェクトではない*ためです。 –

+1

Helloとworldの間にスペースがない場合、なぜ同じIDを持つのですか? –

関連する問題

 関連する問題