Python学習チャンネル by PyQ

Pythonのオンライン学習プラットフォームPyQのオフィシャルブログです

for _ in range(4)などで使われる、Pythonの"_" は、何ですか?

f:id:nana_yu:20180502143157p:plain

f:id:nana_yu:20180404160808p:plain
斎藤こんにちは。 斎藤です。皆さまからPyQメールサポートにご質問いただいた内容から質問と回答をご紹介します。今回は『for _ in range(4)の _ は、何ですか?』という質問に回答します。

Pythonお悩み解決とは?

オンライン学習サービス「PyQ」のサービスの一つ、学習サポートに寄せられた質問の中から プログラミング言語Python一般に関する面白い質問をご紹介し、解説するコーナーです。

プログラミング学習者の目線から見たつまづきを解決していくよう、現役プログラマーのサポートチームがお答えします。

pyq.jp

質問

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.jp

おわりに

以上です。 PyQメールサポートではこのようなPythonの不思議についてやプログラム、設計の意図や勘所についてもお答えしております。 プログラミング・Python学習を集中して無駄なく行なうためにお手伝いいたします。

Copyright ©2017- BeProud Inc. All rights reserved.