このサイトの目的

Python のことで
悩まないようにすること




Python の基本的な文法を習い終えて、1、2年くらいした人を対象に、ある程度、深いところまで一気に辿り着くことを目的に作成しました。Python そのもののことで悩むことがないようにすることです。

Python を習いたてのに人には厳しいかもしれませんが、最大限頑張りました。わからなかったり興味がなかったら、無理せず、しばらく置いておいてください。実際に色々作って理解が、慣れた段階で来ていただけると嬉しいです。

もちろん Python の全てのことを網羅することはできません。もう少し具体的にこのサイトの目的について言えば、公式ドキュメントが読めるようになることです。ある程度のところまで来ると、通常の Qiita やブログの記事がなくなってきて、公式ドキュメント, CPython の実装を直接のぞいて見ざる得なくなります。
公式ドキュメント
cpython - GitHub

しかし、公式ドキュメントはかなり、難しいです。これは公式ドキュメントが、プログラミング経験者で Python を初めて触る人を対象に書かれているからです。


例えばこの文章も、読み終わる頃には、完璧ではないですが、なんとなく理解できるようになります。

名前空間 (namespace) とは、名前からオブジェクトへの対応付け (mapping) です。 ほとんどの名前空間は、現状では Python の辞書として実装されていますが、 そのことは通常は (パフォーマンス以外では) 目立つことはないし、将来は変更されるかもしれません。 名前空間の例には、組込み名の集合 (abs() 等の関数や組込み例外名)、モジュール内のグローバルな名前、 関数を呼び出したときのローカルな名前があります。オブジェクトの属性からなる集合もまた、ある意味では名前空間です。
9.2. Python のスコープと名前空間 - Python チュートリアル

手段

Python が、どのようにして動いているのか How、なぜそのように動いているのか Why について理解を深めます。

題材に取り扱うのは、最初に習う オブジェクト, if 文, for 文 という、ありきたりなものを題材にします。しかし、改めて見ると、これらは、意外と奥が深いものです。

なんで書いたの?

PHP, Java でさえ苦しんでいた自分には、可読性を重視して設計された Python は触っていて、心地いいものでした。Guido やほかの Python 開発者たちが何を考え、配慮してくれたか、知りたかったくもありましたし、またそれを誰かに喋りたかったからです。