まず結論

= は「値を入れる」ための記号です。
== は「同じかどうかを比べる」ための記号です。

score = 100
print(score == 100)

この例では、1行目で score100 を入れています。
2行目では、score100 と同じかどうかを調べています。

Pythonでは、数学で見慣れた記号でも意味が少し変わります。ここでは「代入」と「比較」を分けて考えます。

図で考えるなら

= は、名前のついた箱に値を入れる動きです。

name = "moco"

== は、2つのものを並べて「同じかな?」と見比べる動きです。

name == "moco"

イメージで考えるなら、左側は箱に入れる場面、右側は天秤やカードで見比べる場面です。 同じ記号に見えても、手の動きが違うと考えると迷いにくくなります。

よくある勘違い

初心者がよく書いてしまうのが、この形です。

if score = 100:
    print("満点です")

これはエラーになります。
if の中では「条件」を書きたいので、代入の = ではなく比較の == を使います。

if score == 100:
    print("満点です")

ここだけ覚えればOK

コードを書いていて迷ったら、こう考えてください。

  • 値を保存したいなら =
  • 同じか確認したいなら ==
  • if の条件で比べたいなら ==

手を動かすミニ練習

次のコードで、score の数字を変えて表示を見比べてみましょう。

score = 80

print(score == 80)
print(score == 100)

1行目の score = 80 は、値を入れています。

下の2行の == は、「同じかな?」と調べています。