1. ホーム
  2. python

Pythonのブロックの前のコロンは何のためにあるのですか?

2023-09-02 07:16:08

質問

Pythonのブロックの前のコロンは何のためにあるのですか?

例です。

if n == 0:
    print "The end"

どのように解決するのですか?

コロンは、インデントされたブロックの開始を宣言するために存在します。

技術的には、これは必要ありません。単にインデントして、ブロックが終了したときにインデントを解除すればよいのです。しかし Python の公案 「明示的は暗黙的よりも優れている」(EIBTI) に基づいて、Guido は意図的にコロンを義務化したのだと私は思います。 任意の という文は べきである の後にインデントされたコードが続く場合は、コロンで終わります。(コロンの後に続ければワンライナーも可能ですが、このスタイルはあまり普及していません)。

また、構文を認識する自動インデントエディターの作業を容易にし、これも決定の一因となりました。


この質問は、結局のところ Python FAQ であり、私はGuidoによるその答えの一つを見つけました。 ここで :

<ブロッククオート

if/while/def/class文にコロンが必要なのはなぜですか?

コロンが必要なのは、主に可読性を高めるためです(実験的なABC言語の成果の1つ)。これを考えてみましょう。

if a == b 
    print a

if a == b: 
    print a

2番目のものがいかに読みやすいかに注目してください。さらに、このFAQの回答では、コロンで例を区切っていることに注目してください。

プログラムテキストをより精巧に解析する代わりに、インデントを増やす必要がある場合にコロンを探して判断することができるからです。