このサイトの目的


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




誰のために書かれたの?

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

最大限頑張りましたが Python を習いたてのに人には厳しいかもしれません。 わからなかったり興味がなかったら、しばらく置いておいてください。

ここに書かれていることは、知っていた方がいいですが、知らなくてもいいことです。 無理をさせてしまい Python を嫌いになるようなことには、なって欲しくないなと思っています。

悩まないようにするなんて無理なんじゃないの?

もちろん Python の全てのことを網羅することはできません。 もう少し具体的にこのサイトの目的について言えば、「公式ドキュメントを読めばわかるようになること」です。

ある程度のところまで来ると、通常の Qiita やブログの記事がなくなってきて、 公式ドキュメントを直接のぞいて見ざる得なくなります。
公式ドキュメント

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

9.2. Python のスコープと名前空間 - Python チュートリアル


しかも、さらに悪いことに、ドキュメントもいまいちわからず、 直接 CPython のコードを読まないといけないシーンも出て来るそうです。 自分は、まだ、あまりないですが。
cpython - GitHub

Python の言語仕様というものは、確かに存在します、 しかし大抵の場合は、インタープリタの実装を書き起こしただけですし、 あるいは説明不足だったりします。
There is a language specification but in many cases it just codifies what the interpreter does or is even lacking.
私が見たい Python - The Python I Would Like To See

リスト中で、値 x を持つ最初の要素を削除します。該当する項目がなければエラーとなります。 (え?「値」って何!?)
list.remove(x) - Python チュートリアル

こちらはarrayの方が若干速いですが・・・速い方のarrayで1分以上かかっているので、 先頭から削除はやったら即死の禁じ手です。 (え?なんで!?)
あなたのPythonを爆速にする7つの方法





どれも、一瞬、面食らってしまう文章です。このサイトでは、Python の基本的な文法を理解した人が、これらの文章を理解できるところまで、いっきに達することを目的にしています。

でも、どうやって?

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

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

なんで書いたの?

PHP, Java でさえ苦しんでいた自分には、可読性を重視して設計された Python は触っていて、心地いいものでした。

Guido やほかの Python 開発者たちが何を考え、配慮してくれたか、知りたくもありましたし、またそれを誰かに喋りたかったからです。

『どの作品も、よくできた小説なら必ず与えてくれるものをそなえている — いっときのあいだ、みなさんの心にある現実の重荷を忘れさせ、今までに行ったことのない場所へつれていってくれるはずだ。』
スティーブン・キング, スタンドバイミー, 冒頭「はじめに」で