PR

Pythonの変数名の命名規則を解説します【3つだけ】

アイキャッチ画像
Python初学者
Python初学者

Pythonの変数名って命名規則はあるの?なぜかエラーが起きるんだけど。

こんな悩みを解決する記事を書きました。

いのうえ
いのうえ

こんにちは、学生フリーランスエンジニアのいのうえ(@inouelog)です!

Pythonの変数名はどんな名前にしても良いというわけではなく、大まかに3つの命名規則があります。決して複雑な規則ではないので、本記事で解説する規則を抑えればOKです。

Pythonの変数名の命名規則

  1. アルファベット、数字、アンダースコア( _ )だけ使うことが出来る
  2. 最初の文字は、アルファベットまたは、アンダースコア( _ )にする
  3. アルファベットの大文字と小文字は区別する

最後に例外を紹介しますが、基本的には上記3つだけです。

アルファベット、数字、アンダースコア( _ )だけ使うことが出来る

Pythonの変数名で使うことが出来るのは、

  • アルファベット(a ~ z, A ~ Z)
  • 数字(0 ~ 9)
  • アンダースコア( _ )

だけです。

$ や % などの記号は使うことが出来ないので注意しましょう。
インタラクティブシェルで試してみます。

>>> a = 1
>>> print(a)
1
>>> $a = 1
  File "<stdin>", line 1
    $a = 1
    ^
SyntaxError: invalid syntax

PHPなどを既に学んでいる人は、癖で”$”を付けないようにしましょう。

アルファベットと数字とアンダースコアを使って変数名を命名すると、例えば次のようになります。

>>> a_0_b_1 = 10
>>> print(a_0_b_1)
10

最初の文字は、アルファベットまたは、アンダースコア( _ )にする

数字は使うことは出来ますが、最初の文字に使うことは出来ません。必ず、アルファベットまたは、アンダースコアを使いましょう。

>>> a_1 = 100
>>> print(a_1)
100
>>> _a1 = 200
>>> print(_a1)
200
>>> 1_a = 300
  File "<stdin>", line 1
    1_a = 300
     ^
SyntaxError: invalid decimal literal

アルファベットの大文字と小文字は区別する

例えば、アルファベットのaとAは区別されます。区別せず変数を定義したものとして、実行すると次のようにエラーが起きます。

>>> a = 1000
>>> b = A + 1000
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'A' is not defined

【予約語】Pythonの変数名に使えない名前

ここまで紹介した3つ以外に例外で「予約語は使えない」という規則があります。

予約語とは一言で言うと、「Pythonで重要なキーワード」です。変数名が重要なキーワードと被ると都合が悪いので、予約語と同じ名前の変数名は使うことが出来ません。

予約語の一覧を確かめてみます。

>>> import keyword
>>> print(keyword.kwlist)
['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

このずらっと表示された単語が予約語です。

試しに’and’を変数名として定義しようとしてみます。

>>> and = 1
  File "<stdin>", line 1
    and = 1
    ^
SyntaxError: invalid syntax

このように基本の3つの命名規則は守っているのに、予約語であるためにエラーが起きます。

Pythonの変数名の命名規則 まとめ

ここまでPythonの変数名の命名規則を紹介しましたが、数が少なく単純なものばかりでした。
実際、開発するときにエラーが起きることは少ないと思いますが、もしエラーが起きたら確認してみてください。

以上、『Pythonの変数名の命名規則を解説します【3つだけ】』でした。