Python

Pythonで学ぶ 変数

この記事は、出来る限りわかりやすく、プログラミング初心者の方向けにPythonで扱う変数の理解を助けるための記事です。自転車と同じで慣れれば意識せずとも使用できるようになるのですが、初めは少しだけ慣れるのに転ぶ必要があるかもしれません。

どうしても、初めに概念を少しづつ理解するというステップが必要で、今回はコンピュータそのものを理解するための、コンピュータ科学に寄った内容が含まれます。落ち着いて少しづつ読み進めてください、きっと何かつかめるはずです。

この記事が他のWebサイトや書籍などとともに活用され、少しでも理解の助けになったら嬉しいです。

変数

プログラミング言語には「変数(Variable)」という概念があります。

a = 42

これを見ると、等しいもの?というイメージを連想する方も多いと思います。プログラミング言語では、これは「aという変数を用意し、そこへ42という数値を代入せよ」という意味になります。

コンピュータ(計算機)は計算するための機械です。実際に計算を処理するのは「CPU」という演算装置で、計算のための記憶は、メモリという主記憶装置に保持されます。記憶装置と言われると、HDDやSSDやSDをなどが浮かぶ方もいると思いますが、それらは補助記憶装置と呼ばれ、メモリとは違い、計算のための記憶ではなく、「記録」的な意味合いで用いられるものを指します。

プログラミングは、様々な計算をさせるために、コンピュータに渡す指示書を作る行為です。(さらに丁寧に説明すると、指示書は、人間がキーボードやマウスといった入力装置を使って作成します。)

その指示書から、CPUとメモリを使って計算するのですが、このメモリが変数には密接な関係があります。

メモリには「番地」という通し番号がついています。

この番地というのは、値を保持するための格納場所を指しています。しかし、格納場所は、0x00000000などという人間が扱うには不便なもののため、ラベル付をして、0x00000000は「a」と簡単にその番地を指し示すことができるようにします。

a = 42 

もう一度戻りまして、この表記は、aというラベルが付いた、メモリの番地の値に42を書き込むという処理になります。その特性から、その直後に、

a = 0

とすると、aというラベルが付いたメモリの番地の値は上書きされ、aの値は0となります。

無事にaの値が0になりましたが、どのように確認すればよいのでしょうか。

それは、ディスプレイ(出力装置)へ表示すればいいのですが、そのためにPythonではprint()関数を使う(呼ぶ)ことで実現できます。

具体的にはこのように書きます。

print(a)

こうすることで、print()関数へaという「引数」を渡して、その中身を標準的な出力としてディスプレイへ表示してくれます。

ここで鋭い方は、まだ存在しないはずのラベルの値を確認しようとするとどうなるかが気になると思います。

結論からいうとエラーになります。

賢く、例えばbというラベルが存在しなければ、以下のようなエラーをディスプレイへ表示します。

NameError: name 'b' is not defined

まとめ

変数とは「値を保持し、その値にアクセスするためのラベル」と言えます。

Pythonでは、間違えても、エラーとして処理が止まることが確認できました。

もう少しだけ深く掘り下げてみたい方は、変数の「定義」と「宣言」の違いについて調べてみたり、コンパイラ言語、スクリプト言語の違いなどを学ぶと良いでしょう。