さて今回からはPythonの実装方法について取り上げていきます。
その第一弾として変数を取り上げていきます。
変数はプログラミングをする上で切り離すことができない概念ですので変数とは何かというところからPythonでの変数の扱い方について学んでいきましょう。
また、コードの実行にはGoogleColaboratoryを使って確認しましょう。
Colaboratoryの使い方については以下の記事を参照してください。

変数とは
変数とは文字から意味を推察しようとすれば“変化する数”です。
数学では変数としてxやyが用いられますが、状況に応じて1だったり2だったり、はたまた100といった値をとりますよね。
xという文字が充てられているものの、その中身はいろんな数になりうるから変数と呼ばれるわけです。イメージとしてはxという札がつけられた箱の中に1や2の数字が入っている図を想像してもらえればわかりやすいでしょうか。

これがプログラミングだと数だけに限らず、文字列や、オブジェクトといわれる様々なデータが入ったりするわけです。
なので、プログラミングで変数といったら、様々なデータが入っている箱といっても差し支えないでしょう。
またこの箱はデータによって形を変えます。数値入れれば数値型の箱に、文字を入れれば文字列型の箱に変わります。

変数の扱い方
変数の宣言と初期化
変数を扱うためにはまず「この文字は変数だよ!」と宣言してあげる必要があります。
Javaなどの言語の場合、変数を宣言する際になんの値を入れる箱なのか明記する必要があるのですが、Pythonではその必要はありません。
ただし、Pythonの場合変数の宣言だけ行うといったことができないので、変数の宣言と後述する代入という作業を同時に行います。
また、変数の宣言を行い、最初に値を代入する作業を変数の初期化といいます。変数に初期値を持たせてあげるということですね。

変数の初期化は変数の箱だけ用意したい場合は数値であれば「0」を、文字列であれば、「””」を、全く何もなければ「None」を設定することが多いです。
これらのデータを特に意味をなさないデータなので、その処理の時点で変数に入れる値がないのであれば、初期値としてこれらを設定します。
なお、「None」についてですが、簡単に言えば文字通り何もないデータです。
ほかの言語では「Null」といったりします。
「0」や「””」はあくまでそのデータが入っておりますが、Noneは何もないデータです。
だから初期値にNoneを設定するとその変数は空箱になります。
1 2 3 4 5 6 7 |
#変数の初期化 word = "" number = 0 object = None |
変数の代入
変数を用意しても、変数はただの箱なのでその中身がなければどうしようもないですよね。
なので、変数にはデータを入れて後の処理で利用できるようにするといった作業が発生する場合があります。
この変数にデータを入れる作業を代入といいます。

また変数に代入する具体的な値をリテラルといい、1や2といった数値なら「数値リテラル」、文字の場合であれば「文字リテラル」といった呼び方をします。

1 2 3 4 5 |
#文字リテラルの代入 word = "これは文字のデータです。" #数値リテラルの代入 number = 100 |
変数の名前の付け方
変数の名前の付け方にはいくつかの制限と、コードの可読性を上げるための命名規則があります。
まずは変数に扱える文字列についてです。
- a ~ z のアルファベット (大文字も可能)
- 0 〜 9 の数字
- _ (アンダーバー)
以上です。

Windowsでのファイル名は大文字、小文字は区別されませんが、変数名は区別されます。
また、変数の名前の長さには制限がありません。以下のコードを実行してみて問題ないことを確認してみましょう。
1 2 3 4 |
a = "hello" #大文字と小文字は区別される。 A = "World" abcdefghijklmnopqrstuwxyzabcdefghijklmnopqrstuwxyzabcdefghijklmnopqrstuwxyz = "" #長さに制限はない |
続いて制限についてです。制限は以下の通りです。
- Pythonの予約語と同じ名前の変数名は使えない
- 先頭文字に0 ~ 9の数字は使えない
予約語というのは if や forなど既にPythonで別の意味を持っている名前の事です。実際に書いてみれば予約語で指定されたキーワードとして認識されてしまっていることがわかると思います。

またPythonのキーワード一覧は以下のコードを実行してみることで見ることができます。コードの意味はここでは簡単に説明しますが、”keyword” というライブラリと “pprint” というライブラリを用いることで一覧を出力しています。
1 2 3 |
import keyword import pprint pprint.pprint(keyword.kwlist, compact=True) |

また、数字を先頭にするとエラーになります。

変数名はこのあたりを注意して、変数名を付けましょう。
変数名の命名規則
変数はつけられればなんでもよいというわけではありません。例えば、”Food”って文字列のデータを変数に入れるとして、”drink”って名前の変数にしたらおかしいですよね?なので、変数名はその変数にどういったデータが入るかを考えて命名する必要があります。

あとはこういうデータを入れるときの変数名はこれだ!みたいな共通認識があるのでいろんなコードを読み解いて自分の中でルールをある程度見つけるとよいでしょう。
また、Pythonには公式で定められた命名規則というものがあり、変数名は以下のようにするとよいとされています。
変数名 : 全小文字 (単語間をアンダーバーで区切る)
上記の例えとして、食べ物の名前を入れる変数なら “food_name” 、 食べ物の種類のデータを入れる変数なら “food_kind” といった具合ですね。

これらに注意して、コーディングをすると可読性のある、より見やすいコードになります。
変数名以外にも様々な命名規則があるので一覧を貼っておきます。
種類 | 規則 | 例 |
パッケージ | 小文字(アンダーバー非推奨) | mypack |
モジュール | 小文字(アンダーバー可) | mymodule |
クラス | 先頭大文字(単語間の区切りは大文字) | MyClass |
例外 | 先頭大文字(単語間の区切りは大文字) | MyException |
メソッド | 先頭大文字(単語間の区切りは大文字) | MyMethod |
関数 | 全小文字 (単語間の区切りはアンダーバー) | my_function |
変数 | 全小文字 (単語間の区切りはアンダーバー) | my_variable |
定数 | 全大文字 (単語間の区切りはアンダーバー) | MY_CONSTANT |
変数以外についてはその時に再度説明いたします。
詳細を確認したい方は以下のコードのスタイルガイドを確認するとよいでしょう。
以上で、変数については終了です。
変数の扱い方についてこれでイメージを持っていただけると幸いです。
次回は実際に代入する数値リテラルについて取り上げていきます。
今回は以上です。お疲れ様でした。

コメント