プログラミングを学び始めたばかりの皆さんは、とにかくテキストの内容を理解しながら実行するので手一杯なことでしょう。しかし少し待ってください。何となく使用しているかもしれませんが、「変数の定義」は何のために行うかご存じですか?
今回は変数を定義することの意味や利便性についてご紹介します!プログラミングでは定義という単語が頻出しますので、ぜひここでしっかり意味と存在意義を確認してくださいね。
目次
プログラミングにおける定義の意味
定義とは?
まずは「定義」という言葉の意味を確認していきましょう。プログラミングでいう定義とは、これから使用する変数を用意することを意味します。
変数と定数の違い
ここで変数と定数について、しっかりと認識を改めておきましょう。名前を見れば一目瞭然ですが、定数は値が変わらないもの。変数は値が変わるものを指します。
プログラミングの世界では、この変数と定数をセットで使用します。機械は人間のように要領よく物事を理解できないので、使用する単語や値は使用する前に決定し、それを機械に伝えておかなければなりません。
例えば、num1という名前の変数に2を入れ、num2という名前の変数には3を入れ、足し算をする場合、このnum1とnum2は事前に記述しておかなければならないのです。
イメージとしては以下の通りです。空のボックスに名前を付け、その中に値を入れたと想像してください。
定義と宣言の違い
ではよく聞く、定義と宣言にはどんな違いがあるのでしょうか?端的にまとめると
・定義→その変数の中身とメモリ(領域)を確保する
というような違いがあります。もちろん宣言と定義の方法は言語ごとに異なりますが、変数を作成するには、その変数が数字なのか文字列なのかという「型」とその変数の名前を伝え、そのうえで変数の具体値を作成しなければなりません。
先ほど紹介した、変数の作成方法の画像をもとに確認し、知識を定着させましょう。もちろん現時点ではあまり具体的に捉えられていない方もいると思います。しかしこれはプログラミング言語を学習し、コードを書いていくうちに定着していきますので、安心してくださいね。
プログラミングでは変数の定義が必要
ここからは前段落でご紹介した変数の定義について、さらに知識と存在意義を身に着けていきましょう。
変数とは
まず変数とは、値が変化するものと説明しました。説明した通り、宣言し定義した変数の値はコードを書くことで自由に変化させることができます。
もちろん型を宣言しなおすことで、変数の型も変化させることができるのです。
なぜ変数の定義が必要なのか?
ではなぜ変数の定義が必要なのでしょうか?それは人間の入力誤りを事前に防ぐという、明確な理由がありました。
機械に命令を与えるためには、プログラミング言語を用いて人間が命令文を作成しなければなりません。現在では便利なコードエディターなどが登場し、エラーを事前に知らせてくれる機能がありますが、数字の誤りなどは訂正することができません。
例えば数字「9」と「3」を用いて演算を4回行いたい場合、人間が入力する以上9と3を別の数字で入力してしまう可能性があるのです。
しかし事前に変数として宣言と定義を行っておけば、変数名を用いて計算を行うことができます。変数を用いれば、宣言・定義されていない変数は使用できませんし、もちろん数字に誤りが発生することもありません。
1 2 3 4 5 6 7 |
num1 = 3 num2 = 7 print(num1 + num2) print(num1 * num2) print(num1 - num2) print(num1 / num2) |
1 2 3 4 |
print(3 + 7) print(2 + 7) print(3 - 8) print(4 / 7) |
またコードは多くの人が目にし、多くの人で構成していく場合がほとんどです。その場合「この数は〇〇という数字ですよ」のように、数字に意味を与えることができるのも変数の存在意義です。
1 2 3 |
member_name = "Yamada" member_number = 1 member_score = 156 |
変数を定義した場合としない場合の利便性の差
さらに変数を定義することで、利便性をグッと向上させることもできます。少しわかりづらいと思うので、実際の例を見ながら確認していきましょう。今回は桁数の多い数値を使用した、演算を行う処理を想定して設定してみました。
・出金額(contribute)=200,000円
・入金額(deposit)=1,543,000円
変数を定義しない場合
まずは変数を定義しない場合です。Pythonのprintメソッドを使用し、値を出力しています。ちなみに“{:,d}”.format(8098765)は3桁ずつコンマ(,)で区切りを設定する方法です。
コードの本体を見ていくと、printで出力される数値は何の数値なのか分かりづらく、コードを書くのも時間と手間がかかってしまいました。特に桁数が多い数値なので、数値の入力に時間がかかります。
また演算結果を変数として保つことができないため、演算①、演算②、演算③と増やしていくと、演算結果を逐一確認しながらコードを書いていくか、「演算①の結果+演算②の結果+演算③の結果…」というように、演算結果を連ねて書いていく必要があります。
1 2 3 4 5 6 7 8 9 |
print("現在の残高は" + "{:,d}".format(8098765) + "円です。" + "\n") print("2021-03-08") print("出金:" + "{:,d}".format(1543000) + "円") print("残高 :" + "{:,d}".format(8098765 - 1543000) + "円" + "\n") print("2021-03-19") print("入金:" + "{:,d}".format(200000) + "円") print("残高 :" + "{:,d}".format(8098765 - 1543000 - 200000) + "円" + "\n") |
変数を定義する場合
では演算前の残高、出金額、入金額をそれぞれ数値型の変数として宣言・定義してみましょう。
演算では残高を示すbalance変数に結果を代入し、どんどん残高を上書きしていきます。出力する5行目、9行目、13行目では、何の値を出力するのかが一目瞭然なので、初めてこのコードを見る方でも十分に理解することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
balance = 8098765 deposit = 200000 contribute = 1543000 print("現在の残高は" + "{:,d}".format(balance) + "円です。" + "\n") balance = balance - contribute print("2021-03-08") print("出金 :" + "{:,d}".format(balance) + "円" + "\n") balance = balance + deposit print("2021-03-19") print("入金 :" + "{:,d}".format(balance) + "円" + "\n") |
もう少しコードの読みやすさを上げたいと思う場合は、変数宣言と同時にコメントで何の値なのか、変数の意味を記述しておくと良いでしょう。
1 2 3 |
balance = 8098765 #残高 deposit = 200000 #入金額 contribute = 1543000 #出金額 |
まとめ
今回は変数の定義についてご紹介しました。プログラミングを学び始めたばかりで、なかなか感覚がつかめないかもしれませんが、プログラミングの世界では変数の定義は必須。この記事で変数の存在意義、変数の利用方法、定義・宣言の違いなどをしっかり確認しておきましょう。
参考文献:
【数学】定数と変数の違いに応えます!
宣言 (declaration) と定義 (definition) の違い
エンジニア足立のコーディング日記
変数の定義と値の代入