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 と比較する時といっても良いかもしれない。