Pythonお悩み解決とは?
オンライン学習サービス「PyQ」のサービスの一つ、学習サポートに寄せられた質問の中から PyQユーザーだけでなく、学習者みなさんに役立つプログラミング言語Python一般に関する質問を選んでご紹介し、解説するコーナーです。
プログラミング学習者の目線から見たつまづきを解決していくよう、現役プログラマーのサポートチームがお答えします。
質問内容「変数名の'_'(アンダースコア)の意味は?」
PyQ の問題中に order_dozen
という名前の変数がでてきます。この変数名中の '_'
(アンダースコア)の意味が知りたいとご質問を受けました。
まず、Pythonの変数の命名規則についておさらいしましょう。
Pythonの変数名に利用できる文字*1は以下です。
- アルファベット(大文字・小文字)
- アンダースコア
- 数値(但し、変数名の先頭には利用できない)
また、Pythonプログラムの中ですでに扱いが決まっているキーワード(if
、 import
など)は変数名として利用できません。
以下は、変数名として正しくありません。
10x
: 数値からはじまるif
: キーワードa b
: 途中にスペース@a,$a,aa##
: 記号を利用
話を'_'(アンダースコア)に戻します。
これは変数名をつける上での慣習の様なもので、複数の単語(例: order, dozen)を使った変数名をつけたい場合は、単語を'_'(アンダースコア)で繋げます。
- 注文という意味の変数 -> order
- 注文ダースという意味の変数 -> order_dozen
- 注文のリストという意味の変数 -> order_list
あくまで慣習ですので、 order_dozen
を orderdozen
にしても dozen
にしても動作は変わりません。
ただ、'_'(アンダースコア)をつけることで、単語の区切りがわかるため見やすくなります。
そのほかのPythonで使われる_(アンダースコア)について
変数で使われる以外に、Python言語のそのほかの_(アンダースコア)の使われ方は 以前のPythonお悩み解決の記事にまとめられています。 こちらもぜひご覧ください。