【Python入門】変数とは?初期化方法、命名規則、スネークケース、キャメルケースについて解説します

Python

変数とは

変数とは「扱うデータを読み書きする記憶域 (storage) のことであり、固有の名前(識別子)によって識別される」(wiki)です。
コンピュータはデータを扱いますが、変数を用いることでデータをある領域に名前を付けて保存しておくことができます。
Pythonに限らず、ほとんどすべてのプログラミング言語では変数の概念が存在します。

命名規則

変数名文字の範囲

大文字と小文字の A から Z、アンダースコア _、先頭の文字を除く数字 0 から 9 です。
「Python 3.0 は、さらに ASCII 範囲外から文字を導入します (PEP 3131 1を参照してください。)」とあるので日本語も使用可能です。
ただし、英語で書くのが一般的です。

OKNG
abc
ABC
_ab
abc1
あいう
$abc
0abc

空白文字は使えない

Pythonでは空白文字を使うとエラーになります。
変数名に半角スペースを挟んだ場合と挟まなかった場合を比較してみましょう

OK

NG

上の方は変数名に半角スペースを挟んでないので変数の定義、参照に成功しました。
下の方は変数名に半角スペースを挟んでいるのでエラーが表示されました

キーワードは使えない

変数名は基本的に自由につけることができますが、以下のキーワードは変数名に使用することはできません。

False      await      else       import     pass
None       break      except     in         raise
True       class      finally    is         return
and        continue   for        lambda     try
as         def        from       nonlocal   while
assert     del        global     not        with
async      elif       if         or         yield

これらの単語はすでにPythonで別の文法として扱われている単語です。

変数の命名規則

変数名は一部の例外を除き、原則自由につけることができますがあまりにも命名の仕方が人によってことなると、可読性に難が生じます。
そのため、ある一定の規則を定めるケースが殆どです。
命名規則には下記のようなものがあります。

命名規則
パスカルケース(アッパーキャメルケース)TestVar
キャメルケース(ローワーキャメルケース)testVar
スネークケースtest_var
ケバブケースtest-var

Pythonの変数はスネークケースを用いることが多いです。

そのほかにも大文字のIやOは1や0に間違えやすいので使用しない方がよいと思われます。

変数初期化と代入について

変数初期化と参照

<変数名> = <データ>

で変数を初期化することができます。

print(<変数名>)

で<変数名>の変数に格納されているデータを参照し出力することができます。

変数代入

すでに初期化されている変数に対して

<変数名> = <データ>

とすることで変数に格納されている値を変更することができる

hoge = 1
hoge = 2
print(hoge) # 2が出力される

代入について

先ほどまでは

<変数名> = <データ>

の形式でしたが

<変数名2> = <変数名1>

のように右辺に変数を持ってきたらどうなるのでしょうか

<変数名1> = <データ>
<変数名2> = <変数名1>
print(<変数名1>) # <データ>が出力される
print(<変数名2>) # <データ>が出力される

このように

<変数名2> = <変数名1>

の時点で<変数名1>に格納されていたデータが<変数名2>に格納される結果となります。

hoge = 1
fuga = hoge
print(hoge) # 1が出力される
print(fuga) # 1が出力される

では、ここから<変数名1>に別の値を代入したらどうなるのでしょうか

hoge = 1
fuga = hoge
hoge = 2
print(hoge) # 2が出力される
print(fuga) # 1が出力される

このようにhogeには2が格納されますが、fugaは1のままです。
hoge = 2が行われた瞬間に、メモリ上に新たに変数が確保され、そこに1が代入されます。

  1. PEPとはPython 拡張提案(Python Enhancement Proposal)の略語です。 大きな変更が行われるときは、PEPという文書が書かれて議論されます。参考
タイトルとURLをコピーしました