変数とはなにか、動的型付け言語・静的型付け言語の違いについてまとめました。
変数とは
プログラミングにおける変数(variable)というのは入れ物です。
よく箱に例えられることが多いです。
Pythonでちょっとした計算をすることを考えてみましょう。
Python 3.10.0 Type "help", "copyright", "credits" or "license" for more information. >>> 123456789 * 3467889 428134440548421
実際にやってみましたが、計算は一瞬で終わりました。
ですが計算結果を再利用しようとしようとすると困ったことになります。
上記のような数字は覚えるだけでも大変です。
計算結果をコピーして貼り付けてもいいですが、毎回計算をするたびにコピペするのも面倒ですし、コードをファイルとして保存したときには、そんな手もつかえません。
こんなときに変数を使います。
>>> result = 123456789 * 3467889
>>> result
428134440548421
>>> result / 3
142711480182807.0
変数「result」に掛け合わせた結果を入れたので、これを別の場所に持ち出すことができます。
変数には複数回使うものを入れるといいでしょう。
Pythonではどんなデータであっても入れることができます。
変数を使うときには、中身が取り出されます。
上記ではresultを3で割っていますが、中の数値(この場合は428134440548421)が取り出されています。
変数名は自由につけられますが、次の2つはPythonでエラーになります。
動的型付け言語・静的型付け言語
Pythonは動的型付け言語です。
… … 意味がわかりませんよね?
まず型というのはデータの種類のことで、Pythonに組み込まれている「int, str, list, bool」などのことです。
「動的型付け言語」を簡単にいうと、変数や関数を使うときに型を宣言しなくても使うことができるよ、というものです。コードからPythonが型を判断してくれます。
逆にいうと、型を宣言してからでないと変数や関数を使うことができない言語もあります。
「Java」や「C++」、「C#」などですね。
こういう言語を静的型付け言語といいます。
次のコードはC#のものです。
using System; class Program { static void Main() { int result = 123456789 * 3467889; } }
「int result」が変数の定義です。
C#でもPythonと同じようにint型があり、resultという変数に計算結果を入れています。
Pythonでは変数にはどのような型でも収めることができ、int型を入れていた変数にstr型のデータを新たに代入しても問題ありません。
しかし上記のC#では、int型で定義した変数にはint型のデータしか入れることしかできません。
「なにそれ面倒なだけじゃん」と思うかもしれませんが、予期しないものが代入される心配がなくなりバグにつながりにくい、というメリットがあります。
動的型付け言語は、柔軟にコードを書くことができ、
静的型付け言語は、バグに繋がりにくいです。
また人間がわかるように書かれたコードは、実行する機械がわかるように翻訳しなければいけません。
静的型付け言語はこの翻訳を一括で行っていることが多いので実行速度が速くなり、動的型付け言語は逐次おこなうので遅くなってしまう傾向があります。
とはいえ、動的型付けだから必ずしも動作が遅い、静的型付けだから必ずしも速い、というわけではないので注意が必要です。
まとめ
変数と動的型付け言語・静的型付け言語について見てきました。
変数は入れ物。
Pythonは変数を宣言しなくても使える、動的型付け言語。
変数を使うときに型の宣言が必要な、静的型付け言語。
このページが少しでもお役に立てたのなら幸いです。