2017-02-08 22 views
2

私は、端末と崇高なテキストのビルドコンソールで異なる結果を示す例があります。崇高なテキストpythonビルド別の結果

ターミナル例:Pythonのビルドで

Python 2.7.10 (default, Jul 30 2016, 19:40:32) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 

>>> a = 1000 
>>> b = 1000 
>>> 
>>> print a == b 
True 
>>> print a is b 
False 

崇高なテキストコンソール:

a = 1000 
b = 1000 

print a == b 
print a is b 

------ 
RESULT 
------ 
True 
True 
[Finished in 0.1s] 

最初のケースは正しいのですが、ここでの問題は、崇高は私に間違った結果を与えることです。

なぜ異なる結果が表示されますか?

どちらの場合もPython 2.7を使用します。

答えて

0

私はターミナルでこれを試してみました:

a=1000 
b=1000 

a==b  
True 

a is b 
True 

を整数を扱うときのPython isオペレータが面白い、時には未定義の機能を備えています。私は上記の不一致はPythonがSublimeのケース(と私の端末)で最適化しようとしていることによると思われ、オブジェクトは実際には同じですが、それ以外のケースでは2つの別々の変数として保存しています。

整数比較のためにis演算子を使用するのではなく、==を使用してください。

(もはや整数比較しながら)以下の場合であるもう一つの良い理由==は、比較のために提案されています

a=1000 
b=1000.0 

a==b 
True 

a is b 
False 
関連する問題