当コラムでは、PythonZen & PEP 8 検定試験(こちらでオンライン受験できます)で出題されている問題の解説を行なっています。当コラムシリーズを読んで自信がついたら、ぜひ試験に挑戦してみてくださいね。
今回のコラムで解説する試験問題はこちらです。
問題
Zen of Pythonの「悪い実装(bad idea)」と「良い実装(good idea)」に関する格言について、__(1)__ と __(2)__ に当てはまるものを次の選択肢の中から選びなさい
If the implementation is __(1)__ to explain, it’s a bad idea. If the implementation is __(2)__ to explain, it may be a good idea.
- (1) unlike (2) like
- (1) bad (2) good
- (1) hard (2) easy
- (1) not enough (2) enough
解答のヒント
もし実装が説明__(1)__ならば、その実装は悪いものだ。
もし実装が説明__(2)__ならば、その実装は良いものかもしれない。
どのような実装が良いかどうかを判断するためのガイドになっています。
1の選択肢を当てはめてみましょう。
If the implementation is unlike to explain, it’s a bad idea.
If the implementation is like to explain, it may be a good idea.
「unlike to explain」や「like to explain」という表現は文法的に不自然で、意味がはっきりしません。「unlike」と「like」は比較をする形容詞であり、「説明するのに難しい/簡単」といった意味にはなりません。よって、この文章からは何らかの主張が伝わりません。
2の選択肢を当てはめてみましょう。
If the implementation is bad to explain, it’s a bad idea.
もし実装を説明するのが不適切ならば、その実装は悪いものだ。
If the implementation is good to explain, it may be a good idea.
もし実装を説明するのが適しているならば、その実装は良いものかもしれない。
「bad to explain」や「good to explain」という表現は、文法的に正しいですが、英語としてやや不自然です。また、実装について「説明することが悪い」「説明することが良い」という観点ではなく、「説明が難しい」か「説明が簡単」かという観点で判断する方が、Pythonプログラミングの文脈においては適切です。
3の選択肢を当てはめてみましょう。
If the implementation is hard to explain, it’s a bad idea.
もし実装が説明しにくいならば、その実装は悪いものだ。
If the implementation is easy to explain, it may be a good idea.
もし実装が説明しやすいならば、その実装は良いものかもしれない。
「hard to explain(説明しにくい)」や「easy to explain(説明しやすい)」という表現は、英語として自然で、よく使われるフレーズです。この選択肢では、実装が説明しやすいかどうかを基準に、良い実装かどうかを判断しています。つまり、説明するのが難しい実装は複雑すぎて問題がある可能性が高く、説明しやすい実装は理解しやすく良いものである可能性が高いという主張になっています。
4の選択肢を当てはめてみましょう。
If the implementation is not enough to explain, it’s a bad idea.
もし実装が説明するのに不十分ならば、その実装は悪いものだ。
If the implementation is enough to explain, it may be a good idea.
もし実装が説明するのに十分ならば、その実装は良いものかもしれない。
「enough to explain(説明するのに十分)」や「not enough to explain(説明するのに十分でない)」という表現自体はよく使われるフレーズです。「The comments are not enough to explain the method. (このコメントはこの関数を説明するには不十分だ。)」のように使われます。この選択肢では、実装が何らかの対象を説明するのに十分かどうかを基準にしています。しかし、Zen of Pythonの文脈上はこの観点は適切とはいえません。
Zen of Pythonは、Python言語の設計哲学を端的に表現しており、Pythonのコミュニティでは広く受け入れられています。これらの格言は、Pythonのコードを書く際の指針となっています。
正解について
ここまで正解のヒントをご紹介しましたが、いかがでしょうか? この問題はPythonZen & PEP 8 検定試験で出題されています。
自信がついたら、PythonZen & PEP 8 検定試験 で実際に試験を受けてみましょう。問題解説)