オンライン学習サービス「PyQ」のサービスの一つ、学習サポートに寄せられた質問の中から
プログラミング言語Python一般に関する面白い質問をご紹介し、解説するコーナーです。 プログラミング学習者の目線から見たつまづきを解決していくよう、現役プログラマーのサポートチームがお答えします。Pythonお悩み解決とは?
質問
for _ in range(4)の _ は、何のために使っているのですか?
この質問は、疑問に思っても、なかなか検索しづらいと思います。
回答
「for _ in range(4)」は「for i in range(4)」のように書いてもOKです。 変数名が「_」になっているだけです。
変数名を「_」にすることによって、「その変数を使っていません」ということを表現しています(Pythonの習慣です)。
Pythonで使われる「_(アンダースコア)」記号の用途あれこれ
PyQの回答ではありませんが、_ のあれこれをご紹介します。 _ は、アンダースコアと呼びます。下線符号、アンダーライン、アンダーバーと呼ばれることもあります。 Pythonや他の言語では、変数名にアルファベットとアンダースコアが利用できます。
他に、Python独自のアンダースコアの利用方法を挙げてみましょう。
- インタープリタで最後に実行した結果。
- 非公開のメソッドなどをアンダースコア1つで開始。
- システム用のメソッドなどをアンダースコア2つで開始。
順番に解説します。
インタープリタで最後に実行した結果
使われることは、少ないかもしれません。
ジェネレータ((i for i in range(4))
みたいなもの)の結果が、<generator object <genexpr> at 0x...>
となった時に、すかさず、list(_)
とすると、リストで見ることができます。
非公開のメソッドなどをアンダースコア1つで開始。
Pythonには、C++などに見られる private関数は ないのですが、代替品として使われます。private関数と異なり、呼ぶことはできます。
特殊用途のメソッドなどをアンダースコア2つで開始。
__init__
とか __name__
です。初心者が初めて見ると、とっつきにくいかもしれません。
PyQ の関数のクエストでもimportなどについて学習できますので参考にしてください。
おわりに
以上です。 PyQメールサポートではこのようなPythonの不思議についてやプログラム、設計の意図や勘所についてもお答えしております。 プログラミング・Python学習を集中して無駄なく行なうためにお手伝いいたします。