Pythonのプログラミングでいう変数とは、値(データ)を一時的に保管するための箱のようなものです。
変数を使いこなせるようになると大変便利です。例えば、 1200 * 3 だけだと、何の計算式なのか分かりません。しかし tanka * kosuu と書くと一目で何の計算かが分かりますよね。
さらに条件分岐を覚えると、個数が10個以上なら割引するというような操作を入れることもできます。
そのためにも、ここでは、
- Pythonの変数宣言について
- Pythonの変数の使い方とルール(数値と文字列の代入)
- Pythonの変数を初期化する方法
- Pythonの変数の型について
をそれぞれ解説していきます。
1. Pythonの変数宣言について
Pythonの変数は、宣言文がないため非常に手軽に扱うことができます。
例えば、他の言語では、整数の変数を作る時、 int num = 10 というように、まず int という宣言文を書くことで、 num という変数の「型」が整数であることを宣言する必要があります(「型」については「Pythonの型の確認と変換」をご覧ください)。
Pythonでは、宣言文は必要ありません。 num = 10 と書いたら、変数 num の型は 10 という整数だと、プログラムが自動で判断してくれます。
これがPythonが、シンプルで、見やすく使いやすいプログラミング言語だと言われている理由の一つです。
2. Pythonの変数の使い方とルール
Pythonの変数に値を指定することを「代入」といいます。代入は「変数名 = 値」で行います。
そして、この時の = を「代入演算子」と言います。演算子については「Pythonの演算子」で解説しているのでご確認ください。
2.1. 変数への数値と文字列の代入
それでは、早速、変数に値を代入してみましょう。変数には、数値も文字列も代入することができます。
# 三角形の面積
width = 20.0
height = 10.0
area = width * height / 2
area
この例では、width という変数に 20.0 を、height と言う変数に 10.0 を代入しています。そして、 area は width*height/2 を代入しています。変数 area を出力すると、20.0*10.0/2 の計算結果である 100 が表示されます。
次に文字列の代入を見てみましょう。
a = "This is"
b = " a"
c = " test text"
a + b + c
簡単ですね。
2.2. 変数の初期化
一度何らかの値を代入した変数に、再度「空の値」を代入することによって、その変数を初期化することができます。
以下をご覧ください。
a = ""
a + b + c
この例では、変数 a に代入していた This is という文字列に、「空の値」を再代入して初期化しています。そのため、a の変数が空になり、 a + b + c = a test text となります。
2.3. 変数名のつけ方のルール
変数名のつけ方にはいくつかのルールがあります。以下は押さえておきましょう。
- 半角英数とアンダースコア「 _ 」でつける。
- 平仮名や漢字は一般的には使わない。
- 慣例として変数名は小文字でつける。
- 変数名の一文字目には数字は使えない。
- +, -, /, %, (, ), # のような演算子や記号は使えない。
- and, as, assert, break, class, continue, defなどの予約語は使えない。
- 大文字と小文字は区別される。
- コードの確認や修正を効率よく行うために a や b ではなく、何の値を示す変数なのか分かるように名前をつける。
例えば、my_name、 my_list のようにアンダースコアで連結します。myName や myList のように単語の区切りを大文字にするつけ方もありますが、Pythonでは前者で示すのが一般的です。
また、大文字と小文字は区別されるので point_a や point_A は別の変数として扱われます。
2.4. Pythonの変数には型はない
変数に代入する「値」には型はありますが、変数そのものには型はありません。そのため文字列が入っている変数に数値を再代入しても、値が置き換わるだけでエラーにはなりません(型について詳しくは「Pythonの型」をご確認ください)。
以下をご覧ください。
price = "未定"
price = 120 * 2 #値が再代入され置きかわります
price
3. 変数の複合代入演算子
次に「複合代入演算子」について解説します。
3.1. 複合代入演算子とは
まずは以下をご覧ください。
age = 19
age = age + 1
age
1行目では変数 age には 19 が代入されています。そして2行目では変数 age は age + 1 と再代入されています。もともとの age の値が 19 のため、19 + 1 = 20 になります。以降、age の値は 20 になります。
このように変数の値を更新するために、式に、その変数自体を入れて演算を行うことはよくあります。
そのため、こうした演算を素早く行うために「複合代入演算子」というものが用意されています。
3.2. 複合代入演算子の一覧
以下が一覧です。
演算子 | 例 | 説明 |
+= | a += b | a = a + b と同じ。a に b を足した値を代入。 |
-= | a -= b | a = a – b と同じ。 a から b を引いた値を代入。 |
*= | a *= b | a = a * b と同じ。a に b を掛けた値を代入。 |
/= | a /= b | a = a / b と同じ。a を b で割った値を代入。 |
//= | a //= b | a = a // bと同じ。a を b で割った整数値を代入。 |
%= | a %= b | a = a % bと同じ。a を b で割った商の余りを代入。 |
**= | a **= b | a = a ** b と同じ。a を b 回掛け合わせた値を代入。 |
いくつか例を見てみましょう。
a = 5
b = 10
a += b
a
b **= a
3.3. 変数の初期化と += を使った文字列の結合
複合代入演算子の += は、数値だけではなく文字列を結合することもできます。
以下の例では、+= を使った文字列の結合と、変数の初期化を組み合わせて使っています。
who = "猫"
text = "は嫌い"
text = "" #変数の初期化
text += "我輩は" #変数textに我輩はを代入
text += "who" #「我輩は」に「猫」を結合
text += "である。" #「我輩は猫」に「である」を結合
text
このように、+= による文字列結合や、変数の初期化を覚えておくとコードを素早く書くことができるようになっていきます。
4. まとめ
Pythonの変数について解説してきました。
変数への数値や文字列の代入や、複合代入演算子、変数の初期化などは、コードを書く際に必要不可欠なので、しっかり覚えていきましょう。
コメント