[Python] 比較演算子 == と is の違い

Pythonの比較演算子である ‘==’ と ‘is’ の違いについて。

if x is 100:
    print(x)

のように is を何気なく使っていたら、VS Codeが「ここは == を使うべきじゃありませんか?」と警告を出してくれたので ==is の違いについて調べてみた(VS Code賢い)。

stack overflowによると、

  • == は変数の値が同じかどうかを比較するために使われる
  • is は変数が同じメモリを参照しているかどうかを確認するために使われる

ということらしい。

なので、単純に2つの値が同じ(True)かどうかを確認したい場合には == を使う必要がある。

上記の if 文であれば、

if x == 100:
    print(x)

が正しい。

ここで is を使ってしまうと、場合によって True が返ってきたり False が返ってきたりしてしまう

2つの値を比較する場合で is を使用するほとんど唯一の場面は、None あるいは True、False と比較する時といっても良いかもしれない。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です