テクノロジー

2023年1月1日

Python入門2 数値型の変数

数値型の変数が扱えるようになる

変数を使う

変数を使うことでコンピュータに値を記憶させることができるようになります。

ここでは数値型(int、float)に対しての例で変数の使い方を見ていきます。

変数への代入

代入演算子=を使うことで、 変数 の中に値を 代入 することができます。変数を使うことで値を一時的に保存することができます。

以下は『「250 + 100 + 400」の結果を変数xに代入する』というプログラムです。

x = 250 + 100 + 400

実行しても何も表示されませんが、変数xには値が代入されています。print関数を使い中身を確認してみます。

print(x)

実行すると「750」と表示されます。print(250 + 100 + 400)と同じ結果です。

変数に対して掛け算などの演算を行うことも可能です。

print(x*2)

実行すると「1500」と表示されます。

変数に対する演算の結果をさらに別の変数に対して代入することも可能です。

y = x/2
print(y)

実行すると「375.0」と表示されます。

2つの変数を同時に代入することもできます。

s, t = 100, 200

type()を使い、型を確認することもできます。

print(type(x))
print(type(y))

実行すると「<class ‘int’>」「<class ‘float’>」と表示されます。

何も代入されていない変数を指定するとエラーが出ます。プログラムは上の行から順番に実行されるため、代入のコードよりも前ではその変数のことをPythonは知りません。

*以下はエラーになる例です。

print(z)
z = 100 - 50

なお、代入演算子=の両側には必ずスペースを入れることが推奨されています。

《他のプログラミング言語との違い》

C言語などでは変数に代入する前に型を指定して 宣言 を行う必要があります。そういった宣言が必要な仕組みを 静的型付け 、一方でPythonのような宣言が不要な仕組みを 動的型付け と呼びます。動的型付けの場合は型を意識せずに変数を増やしていけますが、気をつけておかないと型の違いによるバグが発生しやすいという側面もあります。

変数の名前

変数の名前は大文字小文字のアルファベット、数字、アンダースコア(_)が使えますが、数字から始まることはできません。また、ifやforなどの単語はPythonの機能のための 予約語(キーワード) であるため使えません。そして、関数名と同じ名前は、もし命名すると関数の方が使えなくなってしまうため注意が必要です。

以上の条件を満たした名前を自由につけられますが、できるだけ分かりやすいものにするべきです。

分かりやすい変数名

「アルファベットは小文字のみを使い、単語間をアンダースコア(_)で区切る方法」が推奨されています。先頭にはアンダースコア(_)を入れない方が良いでしょう。

abのような意味のない名前をつけると、後々混乱を招きます。変数は何が代入されているのかを一目で理解できるような名前にする必要があります。

「今日の気温」や「学生の年齢」であれば、平易な英単語によって、次のような変数名が良いでしょう。

today_temperature = 25
student_age = 19

やってはいけない命名

もしifforなどの予約語を変数名にすると、以下のようなエラーメッセージが表示されます。

*以下はエラーになる例です。

if = 300

pic1

「SyntaxError: invalid syntax」は、無効な文法が使用されているという表示です。

公式ドキュメントを見て予約語(キーワード)の一覧を一度確認しておくと良いでしょう。

2.3.1. キーワード (keyword) — Python 3.7.3 ドキュメント

これらを予約語として今すぐ暗記する必要はありません。どれも役割を持っていますので、今後覚えていくことになります。

Jupyter Notebook (Colab)などでは予約語を打ち込むと色が変わって表示されるので、そこで判断することもできます。

それ以上に気をつける必要があるのが、関数名と同じ名前を変数にはつけてはいけないということです。

*以下はエラーになる例です。

print = 100
print("Hello, World!")

pic2

print関数と同じ、printという名前の変数は作ることができてしまいますが、その瞬間print関数が使えなくなってしまいます。

このエラーメッセージは、「整数型は呼び出し可能(callable)ではありません」という意味です。呼び出し可能というのは、簡単に言えば、()が使えるということです。printが整数型になってしまったため、関数としては使えなくなってしまったわけです。

元に戻す場合は、Colabであれば「ランタイム」の中から「ランタイムの再起動…」を選びます。そうすることではじめの状態に戻すことができます。Jupyter Notebookであれば「Kernel」の中から「Restart」を選びます。

定数について

ある値をそのプログラムの中で変更せずに使うという場合があります。Pythonでは定数専用の機能はありませんが、名前を大文字のアルファベットにした変数が定数として利用されます。

命名は「アルファベットは大文字のみを使い、単語間をアンダースコア(_)で区切る方法」が推奨されています。

例えば標準気圧(1気圧)は101325パスカルと国際基準で決められています。気圧を扱いたいプログラムでは、次のように定数を作るといったことが考えられます。

STANDARD_ATMOSPHERE = 101325

累積代入文

以下のように、変数に対する演算結果を、同じ名前の変数に代入したいということがよくあります。

x = 1
x = x + 5
print(x)

このx = x + 5x += 5のように書くことができます。

x = 1
x += 5
print(x)

これを 累積代入文 と呼びます。足し算以外の演算も-=*=/=のようにして行えます。代入演算子=の場合と同様に必ず両側にスペースを入れることが推奨されています。

参考文献

はじめに — pep8-ja 1.0 ドキュメント

ダイビックのことをもっと知ってみませんか?