登録会員限定記事 現在はどなたでも閲覧可能です

 Pythonが大変な人気を集めている。先日、都内の大型書店のプログラミング書籍コーナーに行って驚いた。とにかくPythonの解説書が大量にあるのだ。複数の書架をPythonの解説書が埋め尽くしている。すべてのプログラミング言語の中で書籍数が一番多いように見えた。これほどまでに増えているとは正直、思っていなかった。

 自社の近くにある中規模の書店でも確かめてみた。ビジネス書が中心で技術書はあまりないタイプの書店だ。それでも、タイトルにPythonを含む書籍は10冊近くあった。他の言語の書籍は、メジャーな言語でもせいぜい1~2冊程度。対照的な状況である。

 Pythonが人気を集めるに従って、Pythonのことを褒めそやす記事も増えている。そうした記事には、例えば「Pythonのコードは書きやすい」と書かれていたりする。Pythonで有名なプログラマーが言えば説得力があるが、あまりコードを書かない人がこんなことを言っていると少しモヤモヤする。

 というのは、最近、個人的にPythonのコードを書くようになって、それなりにつまずくところがあったからだ。Pythonのことをあまり知らないと思われる人が「書きやすい」と主張しているのを見ると、「ご冗談でしょう」と皮肉の1つも言いたくなる。

 私が具体的にどこでつまずいたのかを紹介しよう。

とにかくコロンを忘れまくる

 Pythonのはまりどころと言うと、インデントを想像する人が多いのではないだろうか。他の言語では、「{}(中カッコ)」などでブロックを表現することが多い。これに対し、Pythonではインデントをそろえた部分がブロックと見なされる。コードを書かない人だと、これがネックになると想像するかもしれない。

 しかし、少なくとも個人的にはインデントのせいでPythonが書きにくいと感じることはなかった。他の言語でも、ネストのレベルなどをインデントで合わせて整形するのが普通だ。コードの形自体はPythonでも他の言語でもあまり変わらない。インデントが単なる見やすさのためなのか、文法的な意味を持つかの違いだけだ。

 ではどこでつまずいたのか。個人的には、何と言っても「:(コロン)」である。Pythonの構文ではコロンを多用する。if文の条件の後にコロン、elseの後にコロン、繰り返し処理を行うfor文でコロン、関数を定義するdef文でコロン、クラス定義でコロン、とにかくコロンだらけだ。

 自分が知っている範囲では、他のメジャーな言語でこれほどコロンを多用する言語はない。このため、とにかくコロンを付け忘れる。最初のうちは、正しくコロンを付けていることのほうが少なかったくらいだ。

 Pythonに慣れてくると、さすがにコロンを付け忘れることは減ったが、それでもたまに忘れてしまう。実行時のエラーメッセージですぐに分かるので、直すのは簡単だが。

 コロンを付け忘れるのは私のような初心者だけではないようだ。

 優秀なエンジニアが集まっていることで有名なあるベンチャー企業は、WebでPythonのチュートリアル資料を公開している。この資料を見ていたところ、構文を説明する図でコロンを付け忘れているところがあった。