オライリーから出版されている「Python チュートリアル 第3版」を読んだ.読者対象として「Python 入門者のための」と書いてあるけど,そこそこ難しい内容もあり,中級者でも楽しめる内容になっている.本書の最初に載っている「訳者まえがき」にも,理解度によって読む方法を変えて良いと書いてあった.今回本書を読んでみて,勉強になった部分を整理しておこうと思う.なお,本書は「Python 3.5.1」をサポートしている.さらに付録もあり,特に「付録E」と「付録F」は面白かった.
- 作者: Guido van Rossum,鴨澤眞夫
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/03/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
目次
- 1章 : 食欲をそそってみようか
- 2章 : Pythonインタープリタの使い方
- 3章 : 気楽な入門編
- 4章 : 制御構造ツール
- 5章 : データ構造
- 6章 : モジュール
- 7章 : 入出力
- 8章 : エラーと例外
- 9章 : クラス
- 10章 : 標準ライブラリめぐり
- 11章 : 標準ライブラリめぐり - PartII
- 12章 : 仮想環境とパッケージ
- 13章 : 次はなに?
- 14章 : 対話環境での入力行編集とヒストリ置換
- 15章 : 浮動小数点(float)の演算:その問題と限界
- 16章 : 補遺
- 付録A : 用語
- 付録B : Python のドキュメント群について
- 付録C : 歴史とライセンス
- 付録D : コピーライト
- 付録E : Python初心者だった頃─みんながひっかかるPythonのヘンなとこ
- 付録F : Python 2を読んだり書いたりせざるを得ない人へ
python -i
オプション
2章「Pythonインタープリタの使い方」の中で,コマンドラインから python -i
で実行すると,実行後にインタラクティブモードに入るという内容があり,今まで使ったことがなかった.サクッとデバッグをするときなどに使えそう.例えば,以下のように変数を宣言するコード name.py
を用意する.
name = 'kakakakakku'
次に python -i
で実行すると,そのままインタラクティブモードになり,変数を確認することができる.
$ python -i name.py >>> name 'kakakakakku' >>> quit()
ビルトイン変数 _
(アンダースコア)
3章「気楽な入門編」では,データ型の紹介がメインだけど,インタラクティブモードの紹介もある.最後に表示した式はビルトイン変数 _
(アンダースコア)に代入される.覚えておくと,使える場面もありそう.
$ ipython In [1]: 100 * 5 Out[1]: 500 In [2]: _ Out[2]: 500
ただし,ローカル変数としても設定できてしまうため,結果としてビルトイン変数を隠蔽することに繋がってしまう.気を付けよう.
$ ipython In [1]: _ = 1000 In [2]: 100 * 5 Out[2]: 500 In [3]: _ Out[3]: 1000
PEP 8 : Style Guide for Python Code
4章「制御構造ツール」の最後にコーディングスタイルとして「PEP 8 : Style Guide for Python Code」の紹介も載っていた.「PEP 8」だと,インデントはタブではなく,4スペースが推奨されている.
リスト内包
5章「データ構造」は基本的なデータ構造の解説だった.リストを生成するときに「リスト内包」が使えることは覚えておくと良さそう.単純に for
を複数書けるだけではなく,if
で条件を設定することもできる.とは言え,可読性とトレードオフになる可能性があるので,メリットがある場合に使う.
$ ipython In [4]: [(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y] Out[4]: [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
標準ライブラリ
11章「標準ライブラリめぐり - PartII」では,以下のライブラリなどが紹介されていた.
reprlib.repr()
textwrap.fill()
locale.format()
struct.unpack()
threading.Thread
logging
weakref.WeakValueDictionary()
collections.deque
bisect.insort()
weakref
など,今まで使ったことがない標準ライブラリもあり勉強になった.collections.deque
に関しては既にまとめてある.
pyvenv
→ venv
12章「仮想環境とパッケージ」では,pyvenv
と pip
の紹介がある.本書は「Python 3.5.1」をサポートしているが,「Python 3.6」で pyvenv
は非推奨になり,現在は venv
が推奨になっているので,注意が必要かも.
The pyvenv script has been deprecated as of Python 3.6 in favor of using python3 -m venv to help prevent any potential confusion as to which Python interpreter a virtual environment will be based on.
実は本書はウェブでも公開されていて,既に「Python 3.6.5」をサポートしている.最新版を読むと venv
前提で書かれている.量が多いため,個人的にはウェブよりも本の方が読みやすかった.
リンク集
13章「次はなに?」はリンク集になっている.Python を勉強するときに参考にすると良さそう.
- Python 標準ライブラリ — Python 3.7.2 ドキュメント
- Python モジュールのインストール — Python 3.7.2 ドキュメント
- Python 言語リファレンス — Python 3.7.2 ドキュメント
- Welcome to Python.org
- 3.7.2 Documentation
- PyPI – the Python Package Index · PyPI
- Popular Python recipes « ActiveState Code
- PyVideo.org
- https://scipy.org/
正誤表
非常に多くの誤植があるので,読むときは正誤表も合わせて確認する.実は正誤表に載っていない誤植を1箇所発見していて,xiv にある 5.1.4 は「れ子」ではなく「入れ子」になるべき.
まとめ
- 「Python チュートリアル 第3版」を読んだ
- 「Python 入門者のための」と書いてあるけど,そこそこ難しい内容もあり,中級者でも楽しめる
- 気になるライブラリなどは IPython や Jupyter Notebook を使って試そう!
- 作者: Guido van Rossum,鴨澤眞夫
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/03/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る