@mopemopeさんからバトンを渡されました、2011 Pythonアドベントカレンダー(Python3) 16日目担当のおもけん(@doloopwhile)です。
Q「RubyとPythonどちらが初心者向けでしょうか?」
A「Pythonは日本語情報が少ないので、Rubyがおすすめです」
質問掲示板などで、しばしば見かけるやり取りです。しかし、本当にPythonは日本語情報が少ないのでしょうか?
確かに、かつてはRubyの情報量の方が圧倒的だったでしょう。しかし、現在ではPythonも日本で広く使われ、Pythonプログラマーのブログも多数あります。少なくとも初心者がPythonを始めるのに情報不足ということはありません。
そこで、明日のPythonプログラマーのため、日本語情報を列挙しておきます。ワリと無難というか、常識的な資料ばかりです。
結局、何を読めばいいの?5つの日本語情報
理系らしく結論を先に書きましょう。
公式サイトからダウンロード&インストールしたら、間髪おかずにチュートリアルを読んで下さい。
次に標準ライブラリにどんなライブラリがあるか、大まかに目を通しておきます。
標準ライブラリは全てをマスターする必要はありません。自分のニーズに応じてチェックしておきましょう。
そしてこの2冊を読めば、『初心者』は卒業と言っていいでしょう。
- 作者: Alex Martelli,Anna Martelli Ravenscroft,David Ascher,鴨澤眞夫,當山仁健,吉田聡,吉宗貞紀
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2007/06/26
- メディア: 大型本
- 購入: 11人 クリック: 423回
- この商品を含むブログ (85件) を見る
- 作者: Tarek Ziade,稲田直哉,渋川よしき,清水川貴之,森本哲也
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2010/05/28
- メディア: 大型本
- 購入: 33人 クリック: 791回
- この商品を含むブログ (91件) を見る
ここまでは日本語で学べます。
やっぱり英語は必要
本格的なアプリを作る場合、WEBアプリならFlaskやDjango、GUIのアプリならPyQt4やwxPythonといった、サードパーティライブラリを習得していく必要があります。残念ながら、ほとんどの場合ドキュメントは英語です。
ただし、英語のドキュメントと言っても、使われるのは中学校レベルの英語です。
また、サンプルコードはPythonで書いてあり、5つの日本語情報で鍛えた基礎力があれば必ず理解できるはずです。
まぁ、なんとかなるでしょう!
Pythonってバージョン2.x系と3.x系で違うらしいけど?
Python 3 のアドベントカレンダーなので、それについても。
互換性が無いと言われますが、2.xも3.xもPythonはPythonです。
実際、互換性の問題になるような違いは以下の程度しかなく、2.xと3.xを両方使いこなすのは簡単です。
- print文がprint関数になった
- strが廃止され、代わりにunicodeがstrという名前になった
- bytesとbytearrayが追加された
- 辞書の .keys() .values() .items() が廃止され、代わりに.iterkeys() .itervalues() .iteritems()が, .keys() .values() .items() という名前になった
- 暗黙の相対importができなくなった
- ライブラリ名が一部変更された(ConfigParser -> configparser等)
- C言語のAPIが変更された(これは初心者にはあまり関係ない)
もっとも、3年前にPython3.0が登場した頃は、3.x対応のライブラリがまだ少なかったため、初心者にはおすすめできないという意見もありました。(参考: Python 3.0がここ数年は初心者に非推奨なたった一つの理由)しかし、現在では主要なライブラリは対応してきているようです。
ただ、現時点で公式ドキュメントの日本語訳はまだ最新でも2.6ですし、amazon:Pythonクックブックも2.5までしか対応していません。そのため、まずは2.xで始めてある程度まで進んだら3.xとの違いを覚える、というステップが良いでしょう。
具体的にどんな違いがあるのか、当アドベントカレンダー参加記事を含む以下のページをごらんください
チュートリアル・入門
- 公式チュートリアル
- オーソドックスかつ十分な量
- Lisp プログラマのための Python 入門
- あなたがS式とマクロを深く愛しているなら、まずこれを。
- 初めてのPython
- 超分厚いが超親切
- 作者: Mark Lutz,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/02/26
- メディア: 大型本
- 購入: 12人 クリック: 423回
- この商品を含むブログ (124件) を見る
- 常識的な厚さの入門書はこちら
- 作者: 柴田淳
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2009/04/11
- メディア: 単行本
- 購入: 23人 クリック: 572回
- この商品を含むブログ (87件) を見る
- 作者: 細田謙二,石井光次郎,岩川建彦,岡田正彦,オレンジ岸本,エスキュービズム
- 出版社/メーカー: 秀和システム
- 発売日: 2010/06
- メディア: 単行本
- 購入: 6人 クリック: 189回
- この商品を含むブログ (14件) を見る
実践Python~文字列操作からWebアプリケーション開発まで
- 作者: 柏野雄太,小松亮介,穂苅実紀夫
- 出版社/メーカー: 株式会社ディー・アート
- 発売日: 2006/12/01
- メディア: 大型本
- クリック: 136回
- この商品を含むブログ (18件) を見る
ライブラリ
- 公式ライブラリリファレンス
- とりあえずどんなモジュールがあるかだけ、ひと通り眺めておきましょう。
- Python Module of the Week
- Python 標準ライブラリを短いサンプルを通して学ぶチュートリアルサイトです。
- [http
- //pypi.python.org/pypi:title=Python Pacage Index(PyPI)](英語):PerlのCPAN、RubyのRubyGemのようなもの。大量のサードパーティのモジュールは基本的にPyPIに登録されているので、検索すれば必要なものが見つかる(かもしれない)。
- Pythonの定番モジュール集
クックブック
- [http
- //code.activestate.com/recipes/langs/python/:title=Popular Python recipes](英語):Pythonクックブックのネタ元になったサイト。 現在でもレシピが追加され続けています。
- Pythonによるデザインパターン
- RubyによるデザインパターンをPythonでやってみようという記事。手前味噌。
- PythonRecipe
- RubyレシピブックをPythonでやってみようというサイト。
応用編
- 「みんなのPython Webアプリ編」のPDFが無料公開中
- 入門書「みんなのPython」の応用編。Webフレームワークを再発明しながら、Webアプリの仕組みを学びます。元々は紙の書籍でしたが、PDF版が無料で公開されています。(2011/12/22追記)
- PythonでWebアプリ開発入門のススメ Flask/MongoDB
- WSGIとPythonでスマートなWebアプリケーション開発を
- web.py 0.2 チュートリアル
- PyQtではじめるGUIプログラミング
- 入門自然言語処理
- 自然言語処理の本ですが、言語はPythonを使っています。
- 作者: Steven Bird,Ewan Klein,Edward Loper,萩原正人,中山敬広,水野貴明
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/11/11
- メディア: 大型本
- 購入: 20人 クリック: 639回
- この商品を含むブログ (44件) を見る
その他
- Python日本語メーリングリスト
- Pythonでわからない事があったら、ここにメールを。先輩たちがやさしく教えてくれるでしょう。
- 今すぐフォローすべきPython界のスーパーエンジニア
- フォローしましょう
- The History of Python.jp
- Pythonがどのように開発されてきたか、どうしてこういう仕様になっているのかを、Guido氏を始めとする開発者が語るブログ。即役立つものではありませんが、良いソフトウェアとは何か?という哲学を学ぶ事ができるでしょう。
- Python Insider
- Python開発者へのインタビューや、新バージョンについてのニュースについてのブログです。