プログラミングを始めたばかりの頃、最初にぶつかりやすい壁のひとつが「変数名(データの入れ物の名前)」の付け方ではないでしょうか?
- 「classという名前にしたらエラーが出た…」
- 「printを変数名に設定したら、画面に出力できなくなった…」
こんな経験はありませんか?
今回は、あらかじめ把握しておくだけでエラーの不安を解消できる、名前付けの基本ルールをわかりやすくご紹介します。
そもそも「予約語」とは?
予約語とは、Pythonのシステム側があらかじめ「特別な用途のために確保しているため、自由には使えない」と定めているキーワードのことです。
会社組織で例えると「社長」や「部長」といった役職名に似ています。新入社員が自身のネームプレートに勝手に「社長」と記載できないのと同様に、言語仕様上特別な意味を持つ単語は、変数名として使用できません。
現在、Pythonの予約語は約35個あります。でも覚える必要はありません。
Python自身にコマンドで問い合わせることで、いつでも一覧を確認できます。無理に覚えるのではなく、必要な場面で確認するスタンスで問題ありません。
以下のコードをコピーして、Pythonで実行してみてください。
import keyword
# 予約語の一覧を表示する
print(keyword.kwlist)
# 予約語の数を確認する
print(f"現在の予約語の数は {len(keyword.kwlist)} 個です。")
これ実行すると、[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, …] といったリストが表示されます。これらが「変数名として指定できない単語の一覧」となります。
特に次の5つは頻繁に登場しますので、「Python専用の役割がある単語」として頭の片隅に置いておくと役立ちます。
- if (もし〜なら)
- for (繰り返し)
- def (関数の定義)
- return (戻り値)
- class (クラスの定義)
可読性を高める「命名規則」の基本
予約語を避ければどのような名前でもよいかというと、実際にはコードを読みやすくするためのマナーが存在します。これを「命名規則」と呼びます。
ビジネス文書でも「日付_書類名.xlsx」といった統一ルールを設けることで管理が容易になるのと同様に、命名規則を守ることで、第三者だけでなく将来の自分自身にとっても読みやすいコードになります。
初心者が押さえておきたい要点は次の2点です。
① 変数や関数は「スネークケース」を用いる
すべて小文字で書き、単語の間をアンダースコア( _ )で繋ぐ方法です。ヘビが地を這うように見えるのでこう呼ばれます。
- 🙆♀️ OK例:user_name、sales_data、total_price
- 🙅♀️ NG例:UserName(キャメルケース)、user-name(ハイフンは減算記号と判定されます)
② 具体的でわかりやすい英単語を選ぶ
単一文字(aやbなど)による曖昧な名前付けは、後からコードを見返した際に意図が分からなくなる原因になります。
- 🙆♀️ OK例:price = 1000 (価格データであることが明確)
- 🙅♀️ NG例:kazu = 1000 (ローマ字表記は避け、英語単語を選択します)
コピペで確認できる名前チェックツール
「この名前を使用しても問題ないか」を確認したい場合は、以下の簡易スクリプトを活用してみてください。
import keyword
def check_name(name):
"""
指定した文字列が変数名として適切かを検証する関数
"""
# 1. 予約語かどうかチェック
if keyword.iskeyword(name):
return f"NG: '{name}' は予約語のため使用できません。"
# 2. 識別子として正しいかチェック(数字始まりや記号の有無など)
if not name.isidentifier():
return f"NG: '{name}' は変数名の規則に違反しています(記号や数字始まりなど)。"
# 3. すべてクリアした場合
return f"OK: '{name}' は変数名として問題なく利用できます。"
# --- 動作確認 ---
print(check_name("class")) # 予約語
print(check_name("1st_place")) # 数字始まり
print(check_name("user_name")) # OK
print(check_name("sales-data")) # ハイフン使用のためNG
予約語ではないけれど要注意!「組み込み関数」の上書き問題
序盤に触れた「print を変数名に設定したら、画面に出力できなくなった…」というトラブル。
実はこれ、厳密には「予約語のエラー」とは少し仕組みが異なります。
printやstr、listなどは予約語ではなく、Pythonに最初から用意されている便利な「組み込み関数」と呼ばれるものです。
そのため、Pythonは以下のようなコードを書いても構文エラーを出さずに受け入れてしまいます。
# 組み込み関数名を変数名にしてしまう(NG例)
print = "こんにちは"
# 本来の出力機能を呼び出そうとすると…
print("画面に出したい文字")
# ➡ TypeError: 'str' object is not callable というエラーが発生!
なぜ動かなくなるのか?
これは、本来「文字を画面に表示する役割」を持っていたprintというラベルを、「ただの文字列」で上書き(シャドーイング)してしまったために起こります。
予約語のように「システムが即座にエラーで止めてくれる」わけではないため、初心者が原因を見落としやすい典型的な落とし穴のひとつです。
そのため、「組み込み関数と同じ名前を変数名に使わない」ことが一番の防御策です。
エディタ上で色が変わる単語や、広く知られた組み込み名(print, input, type, id など)は、変数名に選ばないよう意識しておきましょう。
さいごに
プログラミングは、間違えることも作業の一部です。発生したエラーメッセージを手がかりに修正していけばいいだけです。
適切な命名ルールを身につけることで、構文上のつまずきを未然に防ぐことができます。
まずは、user_nameのように「小文字とアンダースコア」を使うことから始めてみましょう!
Pythonの本は種類が多すぎて、業務効率化に使えるのか見分けるのが大変ですよね。実務自動化に5年以上携わってきた私が、「デスクワークの自動化に即戦力になった本」を厳選して紹介します。失敗しない1冊を見つけたい方は、ぜひ参考にしてみてください。

コメント