- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:演算子is... 初学者 Python 3)
Python初学者におすすめのis演算子の使い方
このQ&Aのポイント
- Python初学者にとって、is演算子は重要な概念です。is演算子は、左辺と右辺のオブジェクトが同じオブジェクトであるかどうかを判断します。
- 具体的には、オブジェクトの値が同じであっても、異なるオブジェクトである場合にはFalseを返します。
- 例えば、str1 = "555"とstr2 = "555"とした場合、str1 == str2はTrueを返しますが、str1 is str2はFalseを返します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
間違い、とも言えません。 手許のPython 2.7.6で、会話モードから id("555") を繰り返すと、違う値になることがあります。 「"555"と書いたら常に同じオブジェクト」と保証されているわけはない、ということでしょう # 公式資料が提示できればいいのですが...ちょっと見つからなくて #2はオブジェクトが同一ではない「場合がある」のでFalseを返す「ことがある」 くらいに考えてはどうでしょうか?
その他の回答 (1)
- kmee
- ベストアンサー率55% (1857/3366)
回答No.1
どこに書いてあったか忘れてしまいましたが Pythonでは、同じ文字列リテラルに同じオブジェクトを再利用することがあります。 今回の場合、内部では str555= "555" str1 = str555 str2 = str555 のように動作しています。 str1 = "555" str2 = "5"+"55" 等とすれば、 ==とisで違いが出ると思います。 また、 t1=(1,2) t2=(1,2) とタプルやリストを使っても違いが出ます。 なお、数値型では a==bならa is bだったはずです。 is で比較される「識別値」は、組み込み関数 id で求められます。
補足
確かにそうなりました!ありがとうございます。 ・・・ということは今回参照したネットの情報が間違いだということでしょうか??