まず結論
= は「値を入れる」ための記号です。
== は「同じかどうかを比べる」ための記号です。
score = 100
print(score == 100)
この例では、1行目で score に 100 を入れています。
2行目では、score が 100 と同じかどうかを調べています。
こんなときに読む記事です
次のようなところで止まった人向けです。
if x = 3:と書いたらエラーになった=と==の使い分けが毎回あやふやになる- 数学の「イコール」とPythonの
=が同じに見えて混乱する
Pythonでは、数学で見慣れた記号でも意味が少し変わります。ここでは「代入」と「比較」を分けて考えます。
よくある勘違い
初心者がよく書いてしまうのが、この形です。
if score = 100:
print("満点です")
これはエラーになります。
if の中では「条件」を書きたいので、代入の = ではなく比較の == を使います。
if score == 100:
print("満点です")
エラー文ではどう見える?
if score = 100: のように書くと、環境によっては SyntaxError が出ます。
SyntaxError: invalid syntax
エラー文だけ見ると難しく感じますが、この場合は「ifの条件なのに、比較ではなく代入を書いている」ことが原因です。
図で考えるなら
= は、名前のついた箱に値を入れる動きです。
name = "moco"
== は、2つのものを並べて「同じかな?」と見比べる動きです。
name == "moco"
ここだけ覚えればOK
コードを書いていて迷ったら、こう考えてください。
- 値を保存したいなら
= - 同じか確認したいなら
== ifの条件で比べたいなら==
次に確認するとよいこと
= と == が分かると、変数とif文が読みやすくなります。
- 変数は「値に名前をつける」仕組み
- if文は「条件が本当かどうか」で道を分ける仕組み
3行まとめ
- 「=」は右の値を左の名前に入れる。
- 「==」は左と右が同じかどうかを調べる。
- if文の条件で比べたいときは、基本的に「==」を使う。