どのプログラミング言語にも登場する変数(へんすう)の解説です。
サンプルスクリプト
実行イメージ
5000
ファイル名:05_hensu.py
# 数値変数(整数)
tanka = 1000
kosu = 5
gokei = tanka * kosu
print(gokei)
解説
変数は、コンピュータに数値や文字列などを記憶させておくために使います。
スクリプトの2行目
tanka = 1000
は、tankaという名前のついた箱に1000というデータを入れた、という意味です。
この箱を変数(へんすう)と呼んでいます。上記、tanka = 1000 の場合、変数tankaに数値1000を代入(だいにゅう)する、などという言い方をします。
tanka = 1000 の部分に違和感を持った方は普通です。
小学校で 1 + 1 = 2 のような書き方を習ったので式を左から右に見てしまうくせがあります。変数の書き方は逆になります。
変数を使った式の場合はこんなイメージで見てください。
「=」記号を隔てて右側のものが左側の変数という箱に入る、と考えてください。
変数の式の良い例と悪い例を示します。
=の左側に数値を描いた下の式はエラーになってしまいます。
=の左側には変数しか記述できない、と覚えておけば大丈夫です。
=の右側は1つの数値だけでなく、演算子を使った計算式も記述できます。
スクリプト4行目の
gokei = tanka * kosu
の部分です。
これは左側の tanka * kosu の計算結果がgokeiという変数に代入されることを表します。
変数式には、例えば次のような式も記述できます。
gokei = tanka * 10
※tanka × 10 の計算結果が、変数gokeiに代入される
c = (a + b) * 3
※ ( a + b )× 3 の計算結果が、変数c に代入される
y = 2 * x + 5
※ 2 × x + 5 の計算結果が、変数y に代入される
変数が登場する式は「=」を真ん中にして右と左に分けて考えるくせをつけてください。
変数の特徴
例えば、ゲームで遊んでいる時にリアルタイムに変化するゲームスコアやRPGゲームの主人公の名前やHPなどは全てプログラミング言語でいう変数という箱に入っています。
変数を箱のような入れ物として考えるとイメージしやすいです。
ゲーム画面だとスコア表示位置は変化しませんが、数値はどんどん変化します。箱の外見は同じだけれど箱の中身は変わっていく...という感じでしょうか。だから変数というのだと思います。
ただし普通の箱にはない特徴があります。
変数は、1度に1つのものしか入らない箱です。
これが変数が普通の箱と違う点です。
ですから次のようなスクリプトは、最後に変数xに代入した999が表示されます。
ファイル名:06_hensu.py
# 変数の中には1度に1つしか入らない
x = 100
x = 1
x = 999
print(x)
以上、基本的な変数の使い方と考え方を説明しました。
変数の説明はこれで全てではありません。
変数には「こんにちは」などの文字列や、今回扱わなかった実数(じっすう)と呼ばれれる「123.5」などのような小数点以下を扱う数字も代入出来ます。そちらはまた別の回にまわします。
ただ、補足として変数の中身を文字列と一緒にprint文で表示する記述を1つだけ示しておきます。
変数の値を文字列と一緒に表示する(文字列連結を使う)
実行イメージ
単価は1000円
個数は5個
金額は5000円です
上記、1000、5、5000の数値は、それぞれ変数に代入されたものを表示しています。
変数と文字列を混在した表示を行うには+記号を使って文字列連結を行います。
ファイル名:07_hensu_print.py
# 文字と数値を一緒に表示する
tanka = 1000
kosu = 5
gokei = tanka * kosu
print("単価は" + str(tanka) + "円")
print("個数は" + str(kosu) + "個")
print("金額は" + str(gokei) + "円です")
解説
5行目~7行目で変数の表示を行っています。
変数tanka、kosu、gokeiはそれぞれ整数が代入されています。Pythonでは、print文で+記号を使って文字列同士の連結が出来ます。
例えば、
print("こんにちは" + "古泉さん")
とすると
こんにちは小泉さん
と表示します。
文字列と変数の連結も「+」記号で可能ですが、変数の中身が整数などの数値だと残念ながらエラーとなります。
例えば、
tanka = 1000
print(tanka + "円です")
を実行して
1000円です
と表示したいところですが、
TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’
などとエラーメッセージが出てしまいます。
「数値と文字列は連結できないよ!」という意味のエラーです。
そこで数値を一時的に文字列にしてくれるstr()を使って、次のようにします。
print( str(tanka) + "円です")
これで表示結果が、
1000円です
となります。
先ほどのスクリプトの5行目~7行目でもstrを使って数値変数を文字列化して連結していました。変数を文字列の中に挿入して表示する方法としてformat()を使う方法などもありますが、まずは+記号で連結出来ることを憶えておいてください。
# 文字と数値を一緒に表示する
tanka = 1000
kosu = 5
gokei = tanka * kosu
print("単価は" + str(tanka) + "円")
print("個数は" + str(kosu) + "個")
print("金額は" + str(gokei) + "円です")
以上、Pythonの変数について(整数編)でした。
課題
1
変数heightに179を代入し、次のように表示させよ。
ファイル名:sincho.py
僕の身長ですか? たしか、179センチだったような。
2
節度ある適度な飲酒は健康への第一歩である。
日本人なら1日に平均20g以下のアルコール摂取量が望ましい。
例として、500mlのビールがアルコール度数5%だとすると、このビールに含まれるアルコール量(g)は次のように計算できる。
500 (ml) × 0.05 (5%) × 0.8(アルコールの比重)= 20 (g)
わたしは1日にアルコール度数5%の一番搾りを1本(350ml)を飲むので、アルコールが何gか知りたい。中途半端にPythonスクリプトを書いたのだが…君、完成させてくれないか?(資料:アルコール – 厚生労働省より)
ファイル名:beer.py
# 350ml一番搾りのアルコール量(g)を求める
beer = 350
■■■■■■
■■■■■■
g = beer * alchol * hijyu
print( str(beer) + "mlの一番搾りのアルコール量は" + ■■■■■ + "グラムです")
表示イメージ
350ml一番搾りのアルコール量は14.0グラムです
コメント