こんにちは、ソフトウェアについてほのぼのと記載します。
現在、UdemyのPython3の講座を受講しています。
今回は、"is"について学んだのですが、
C言語から来ている私からするとポインタで説明してくれた方がわかりやすかったです。
"is"はNoneかどうか判定するときによく使うようです。
ここでいう"None"はC言語でいうNullということのようです。
# 値同士の比較
print(1 == True)
結果: True
# オブジェクト同士の比較
print(1 is True)
結果: False
比較しているTrueはおそらく、Pythonのライブラリの中で値が1で定義されているのでしょう。
"is"はオブジェクト同士の比較なので、
メモリアドレスとしては、例えば、1は0x1000番地、Trueは0x2000番地にそれぞれ
割り当たっていて、
"is"を用いると、0x1000番地と0x2000番地の比較ということになると、
番地が異なるので、Falseとなるのだと思います。
仮に同じ番地ならTrueになるのでしょうね。