プログラミングの勉強をしていると変数(へんすう)という言葉が必ず出てきます。
そして変数の対になる用語として定数(ていすう)も登場します。この変数と定数の関係を理解することでプログラミングへの理解が深まります。
変数と定数の基本
例えば整数型の変数 a に10を代入するとします。
a = 10
この場合、=(イコール)を隔てて右側の10がaに代入されます。
この時のaを変数(へんすう)、10を定数(ていすう)と呼んでいます。
定数には、数値、文字、文字列、真偽値などがあります。
10, 8, 23.5, 0.001, ‘A’, “Hello”, True, False …..
定数は情報そのものなので変更はできません。
数値の 10 は 10 ですし、文字列 “Hello” は、あくまで文字列 “Hello” です。
対して変数は違います。
変数はその名の通り、中身が変化する性質を持ちます。
変数 a が数値 10 の場合もあれば、数値 2586 の場合もあるということです。
変数を使った式は、=を隔てて右側の式が左側の変数に代入される性質を持ちます。
したがって次のことが言えます。
もちろん=の左側の式は変数と定数を組み合わせた式や変数同士の計算式でも大丈夫です。
=の左側の計算結果が、右側の変数に代入されることになります。
定数部分は、全て変数で置き換え可能
ポイントは、プログラミングでは定数部分で記述された箇所は全て変数でも置き換え可能ということです。
例として
gokei = 10
heikin = gokei / 5
print("合計は {}です".format(gokei))
print("平均は {}です".format(heikin))
というプログラムであれば、
gokei = 10
kosu = 5
heikin = gokei / kosu
print("合計は {}です".format(gokei))
print("平均は {}です".format(heikin))
としても同じ結果ということになります。
上記は簡単な例ですが、プログラミングでは定数部分で記述された箇所は全て変数でも置き換え可能を実践していくとプログラムらしくなってきます。
例えば、リストを使った次のようなスクリプトがあったとします。
ファイル名:list_teisu.py
kumi = ["さくら組", "ひまわり組", "すみれ組"]
print("何番にしますか?(1~3)", end="")
bango = int(input())
if bango == 1:
print(kumi[0])
elif bango == 2:
print(kumi[1])
elif bango == 3:
print(kumi[2])
実行イメージ
何番にしますか?(1~3)2 [Enter]
ひまわり組
ユーザが入力する番号とリスト要素の関係は次の通りです。
入力する番号 | リスト要素 | リスト内容 |
---|---|---|
1 | kumi[0] | さくら組 |
2 | kumi[1] | ひまわり組 |
3 | kumi[2] | すみれ組 |
表から推測できるのは、入力する番号とリスト要素の添え字との関係です。
リスト要素の添え字は、入力する番号より1少ない数です。そう考えると先ほどのスクリプトは、次のように置き換え可能です。
ファイル名:list_hensu.py
kumi = ["さくら組", "ひまわり組", "すみれ組"]
print("何番にしますか?(1~3)", end="")
bango = int(input())
print(kumi[bango-1])
最初のスクリプトでは、if文でそれぞれ print(kumi[0])、print(kumi[1])、print(kumi[2])を実行していました。
リストの添え字が全て定数となっていました。
これを
print( kumi[bango-1] )
とした事でわずか1行で済んでしまいました。
定数部分は、変数で置き換え可能として考えていくと効率の良いプログラムが記述できるようになります。
以上、Python:変数と定数についてでした。
コメント