今大学の2回生で数学とコンピュータサイエンスを勉強しています。
その知識を生かして、今回は「プログラミングの変数の定義と数学の=の違い」という問いを考察してみました。
プログラミングの変数の定義と数学の=の違い
多くの人が変数を定義の仕方を見て、数学の=と似ているなと感じたと思います。実際にその感覚で通用するところもあるし、変数の定義の後使われた時の代入の仕方とかは数学のそれと近いものがあります。(というよりその感覚で正解だと思います。)
ですが、変数の定義と数学の=と意味合いが異なります。
数学の = は両辺が同じということを意味するのに対して、プログラミングの変数の定義は左辺の変数名が右辺の値を意味することを意味します。
数学はa =5, b=5という前提からスタートして、何かしらの結論を導きます。
a = 5, b = 5 → a + b = 10
この場合はa=5,b=5とした時、a+bが10と同じことになることを意味します。
それに対して、プログラミングはa = 5, b = 5という変数を定義することで後々利用することを想定しています、新しい結論は導きません。
なので、
>>> a + b = 10
SyntaxError: can't assign to operator
こういった式はpythonには存在しません。
ただしそれはa+bの計算ができないということを意味しているわけではありません。
a + bとだけ書けば、コンピューターがその都度代入、計算をして10を持ってきます。
print(a+b)
実行した結果
10
>>>
あるいは num = a + bのようにnumという新しい変数の名前をつけるのに使われるかもしれません
num = a + b
print(num)
実行した結果
10
>>>
結論
数学では=は何かしらの結論を表すのに使われるものでプログラミングの変数の定義は再利用をするために使われるもの