2. What is Python?
• Guido van Rossumによって開発されたオブジェク
ト指向スクリプト言語。
• 教育用を意図して開発された言語ではないが、その
特徴から教育に用いられることも多い。
• 標準で豊富なライブラリが用意されており、プログ
ラミングを強力にサポートしてくれる。
3. The Zen of Python
• Tim Petersによって書かれた、Pythonの基本的な考
え方をまとめた全19条の指針。
• Pythonインタプリタ上で import this と入力す
れば、その内容をいつでも確認できる。
• 絶対のルールというわけではないが、プログラミン
グの際には頭の片隅に置いておきたい。
4. 1. Beautiful is better than ugly.
• 【訳】きたないのよりきれいな方がいい。
• 書いたあと、誰にも読まれることのないプログラム
は存在しない。
• ほかの人のために、そして未来の自分のために綺麗
なプログラムを書こう。
5. 2. Explicit is better than implicit.
• 【訳】ごちゃごちゃ難しいのより、白黒はっきりし
てるのがいい。
• プログラム中の変数、関数、クラス、パッケージ…
などには、意味が明確にわかる名前をつけよう。
• キラキラ変数名をつけるのはやめよう。
6. 3. Simple is better than complex.
• 【訳】めんどうなのよりかんたんな方がいい。
• 簡単なことは簡単に書こう。
• 格好をつけてアクロバティックな書き方をするのは
やめよう。
7. 4. Complex is better than complicated.
• 【訳】けど、訳分かんなくなるくらいならめんどう
な方がまし。
• 複雑なことを簡単に書こうとして、逆に意味が伝わ
りづらくなっていないだろうか?
• わかりづらかったり、ほかの部分に悪影響が出たり
するのであれば、別に無理をする必要はない。
8. 5. Flat is better than nested.
• 【訳】ネストさせなくていいならしない方がいい。
• ネストが深くなってしまう場合、プログラムの構造
を見直すべきかもしれない。
• 「ネストって何?」と疑問に思った人は、後期の授
業で先生に質問すればきっと丁寧に教えてもらえる
よ!
9. 6. Sparse is better than dense.
• 【訳】たくさん詰め込んだのよりスカスカな方がい
い。
• プログラムには適度に空行を入れよう。
• たくさんの処理を1行に詰め込むのはやめよう。
• このスライドにもZenの考え方を取り込み、あえて
スカスカに作ってあります。
11. 8. Special cases aren't special enough to break the rules.
9. Although practicality beats purity.
• 【訳】特別なこともあるけど掟破りってほどじゃな
い。実用性を求めてくと、ちょっとはずれちゃうこ
ともあるけどね。
• その特別扱いが本当に必要なことかどうか、もう一
度よく考えてみよう。
• もし本当に必要なのであれば、特別扱い自体は別に
悪いことではない。
12. 10. Errors should never pass silently.
11. Unless explicitly silenced.
• 【訳】わざとそうしてるんじゃない限り、エラーを
だまって通すようなことがあっちゃいけません。
• 例外処理は不祥事を隠すための仕組みではない。
• 「例外処理って何?」と疑問に思った人は、後期の
授業で先生に質問すればきっと丁寧に教えてもらえ
るよ!
13. 12. In the face of ambiguity, refuse the temptation to guess.
• 【訳】あいまいなことをてきとーに処理しちゃいけ
ません。
• 思い込みや決めつけで処理をしてはいけない。
• あなたのプログラムを使う人は、あなたが思いもよ
らなかったような操作を平気で行うということを肝
に銘じておこう。
14. 13. There should be one - and preferably only one - obvious way to do it.
14. Although that way may not be obvious at first unless you're Dutch.
• 【訳】間違えようのないやり方がひとつだけあるの
がいいね。オランダ人以外には、ちょっと分かりに
くかったりしてもね。
• There’s Only One Way To Do It.
• いくら同じ書き方になるからといって、ほかの人の
課題の答えを丸写しにして提出するのはやめよう。
15. 15. Now is better than never.
16. Although never is often better than *right* now.
• 【訳】やらないよりは今やるべき。けど今「すぐ」
やるならやんない方がいいこともある。
• 面倒だからといって後回しにするのはやめよう。で
も、行動に移すのはよく考えてから。
• 慎重かつ大胆に。
16. 17. If the implementation is hard to explain, its a bad idea.
18. If the implementation is easy to explain, it may be a good idea.
• 【訳】作るものをうまく説明できないようならそれ
はボツ。うまく説明できたらたぶんそれがグッド。
• ほかの人に上手く説明できないことは、自分も完全
には理解できていない。
• たとえ複雑な処理であっても、やりたいことの本質
は簡単に説明できるはず。
17. 19. Namespaces are one honking great idea - lets do more of those!
• 【訳】ぶらぼーなアイディア名前空間、やっぱこれ
ですね。
• 名前空間はPythonの仕組みを支える考え方。
• 「名前空間って何?」と疑問に思った人は、後期の
授業で先生に質問すればきっと丁寧に教えてもらえ
るよ!
18. A list of references
• PEP 20 -- The Zen of Python | Python.org
http://www.python.org/dev/peps/pep-0020/
• The Zen of Python(日本語訳)
http://www.python.jp/Zope/articles/misc/zen
• エキスパートPythonプログラミング
http://www.amazon.co.jp/dp/4048686291
• 空飛ぶモンティ・パイソン
http://www.amazon.co.jp/dp/B000X431A4