Pythonチュートリアル 第3版

[cover photo]
  • 2016年03月 発行
  • 260ページ
  • ISBN978-4-87311-753-9
  • フォーマット Print PDF
  • 原書: Python Tutorial, 3rd Edition

オライリー・ジャパンで書籍を購入:
定価1,944円

Ebook Storeで電子版を購入:
価格1,555円

本書はプログラミング言語Pythonの作者Guido氏が書き下ろした、Python入門者のための手引き書です。Pythonの言語とシステムの基本的な機能やコンセプトを解説し、さらにPythonの特徴的な機能を数多く取り上げて紹介することで、読者がこの言語の雰囲気とスタイルをつかめるよう配慮しています。今回の改訂では最新の3.5.1版ドキュメントに追随し、また追加された新しい言語機能とライブラリモジュール、仮想環境といった多くの変更に対応しました。本書を読むことで、Pythonのモジュールやプログラムを読み書きできるようになり、ライブラリリファレンスで解説されているさまざまなモジュールについて、詳しく学ぶ準備が整います。入門者必読の書です。

関連書籍

Head First Python 第2版
Pythonからはじめる数学入門
実践 Python 3
入門 Python 3
初めてのPython 第3版

訳者まえがき
概要

1章 食欲をそそってみようか

2章 Pythonインタープリタの使い方
    2.1 インタープリタの起動
        2.1.1 引数を渡す
        2.1.2 対話モード
    2.2 インタープリタとその環境
        2.2.1 ソースコード・エンコーディング

3章 気楽な入門編
    3.1 Pythonを電卓として使う
        3.1.1 数値
        3.1.2 文字列
        3.1.3 リスト
    3.2 プログラミング、はじめの一歩

4章 制御構造ツール
    4.1 if文
    4.2 for文
    4.3 range()関数
    4.4 break文とcontinue文、ループにおけるelse節
    4.5 pass文
    4.6 関数の定義
    4.7 さらに関数定義について
        4.7.1 引数のデフォルト値
        4.7.2 キーワード引数
        4.7.3 任意引数のリスト
        4.7.4 引数リストのアンパック
        4.7.5 lambda(ラムダ)式
        4.7.6 ドキュメンテーション文字列(docstring)
        4.7.7 関数注釈(関数アノテーション)
    4.8 幕間つなぎ:コーディングスタイル

5章 データ構造
    5.1 リストについての補足
        5.1.1 リストをスタックとして使う
        5.1.2 リストをキューとして使う
        5.1.3 リスト内包
        5.1.4 れ子のリスト内包
    5.2 del文
    5.3 タプルとシーケンス
    5.4 集合(set)
    5.5 ディクショナリ
    5.6 ループのテクニック
    5.7 条件についての補足
    5.8 シーケンスの比較、その他の型の比較

6章 モジュール
    6.1 さらにモジュールについて
        6.1.1 モジュールをスクリプトとして実行する
        6.1.2 モジュールの検索パス
        6.1.3 「コンパイル済」Pythonファイル
    6.2 標準モジュール
    6.3 dir()関数
    6.4 パッケージ
        6.4.1 パッケージから*をインポート
        6.4.2 パッケージ内の相互参照
        6.4.3 複数のディレクトリにまたがるパッケージ

7章 入出力
    7.1 手の込んだ出力フォーマット
        7.1.1 従来形式の文字列フォーマッティング
    7.2 ファイルの読み書き
        7.2.1 ファイルオブジェクトのメソッド
        7.2.2 構造のあるデータをjsonで保存する

8章 エラーと例外
    8.1 構文エラー
    8.2 例外
    8.3 例外の処理
    8.4 例外の送出
    8.5 ユーザー定義例外
    8.6 クリーンアップ動作の定義
        8.6.1 オブジェクトに定義してあるクリーンアップ動作

9章 クラス
    9.1 名前とオブジェクトについて一言
    9.2 Pythonのスコープと名前空間
        9.2.1 スコープと名前空間の例
    9.3 はじめてのクラス
        9.3.1 クラス定義の構文
        9.3.2 クラスオブジェクト
        9.3.3 インスタンスオブジェクト
        9.3.4 メソッドオブジェクト
        9.3.5 クラス変数とインスタンス変数
    9.4 その他いろいろ
    9.5 継承
        9.5.1 多重継承
    9.6 プライベート変数
    9.7 残り物あれこれ
    9.8 例外もまたクラスである
    9.9 反復子(iterator)
    9.10 ジェネレータ
    9.11 ジェネレータ式

10章 標準ライブラリめぐり
    10.1 OSインターフェイス
    10.2 ファイルのワイルドカード
    10.3 コマンドライン引数
    10.4 エラー出力のリダイレクト(行き先を変えること)とプログラムの終了
    10.5 文字列パターンマッチング
    10.6 数学
    10.7 インターネットへのアクセス
    10.8 日付と時間
    10.9 データ圧縮
    10.10 パフォーマンス計測
    10.11 品質管理
    10.12 電池付属です

11章 標準ライブラリめぐり─PartII
    11.1 出力整形
    11.2 テンプレート
    11.3 バイナリデータレコードの処理
    11.4 マルチスレッド
    11.5 ログ取り
    11.6 弱参照
    11.7 リスト操作のツール
    11.8 10進数の浮動小数点計算

12章 仮想環境とパッケージ
    12.1 イントロダクション
    12.2 仮想環境の生成
    12.3 pipによるパッケージ管理

13章 次はなに?

14章 対話環境での入力行編集とヒストリ置換
    14.1 タブ補完とヒストリ編集
    14.2 その他の対話型インタープリタ

15章 浮動小数点(float)の演算:その問題と限界
    15.1 表現誤差

16章 補遺
    16.1 対話モード
        16.1.1 エラー処理
        16.1.2 実行可能なPythonスクリプト
        16.1.3 対話環境のスタートアップファイル
        16.1.4 モジュール構成のカスタマイズ

付録A 用語

付録B Python のドキュメント群について
    B.1 Pythonドキュメンテーションへの貢献者

付録C 歴史とライセンス
    C.1 このソフトウェアの歴史
    C.2 Pythonへのアクセスその他の使用における条件(Terms and conditions for accessing or otherwise using Python)
    C.3 含有されるソフトウェアについてのライセンスおよび謝辞(Licenses and Acknowledgements for Incorporated Software)
        C.3.1 Mersenne Twister
        C.3.2 ソケット
        C.3.3 浮動小数点例外制御
        C.3.4 非同期ソケットサービス
        C.3.5 クッキー管理
        C.3.6 実行トレース
        C.3.7 UUencodeおよびUUdecode関数
        C.3.8 XMLリモートプロシジャーコール
        C.3.9 test_epoll
        C.3.10 Select kqueue
        C.3.11 SipHash24
        C.3.12 strtodおよびdtoa
        C.3.13 OpenSSL
        C.3.14 expat
        C.3.15 libffi
        C.3.16 zlib
        C.3.17 cfuhash
        C.3.18 libmpdec

付録D コピーライト

付録E Python初心者だった頃─みんながひっかかるPythonのヘンなとこ
    E.1 most recent call lastってなんぢゃ
    E.2 内包がわからぬ
    E.3 なんだよこの正規表現は
    E.4 インタラクティブヘルプが使えない
        E.4.1 help()で出てくるもの
        E.4.2 たいていの場合は「help('なにか')」でよい
        E.4.3 「help(なにか)」はオブジェクトを評価する

付録F Python 2を読んだり書いたりせざるを得ない人へ
    F.1 printが文である
        F.1.1 新規に使う場合
        F.1.2 古いソースを読むとき
    F.2 文字列の整形
        F.2.1 新規に使う場合
        F.2.2 古いソースを読むとき
    F.3 文字列型とbytes型
        F.3.1 新規に使う場合
        F.3.2 古いソースを読むとき
    F.4 データ型の扱い
        F.4.1 新規に使う場合
        F.4.2 古いソースを読むとき
    F.5 例外文法が異なり、バリエーションも大きい
        F.5.1 新規に使う場合
        F.5.2 古いソースを読むとき
    F.6 整数除算は整数を返す
        F.6.1 新規に使う場合
        F.6.2 古いソースを読むとき
    F.7 その他の旧機能
        F.7.1 整数型が2種類あった
    F7.2 どんなオブジェクト同士でも順序比較が可能だった 
    F7.3 更に細かい違い

索引

ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。


第2刷正誤表(2017/9/11更新)

・viiページ 下から9行目
【誤】18章
【正】15章

・7ページ 下から7行目
【誤】16.1 補遺
【正】16.1 対話モード

・8ページ 脚注
【誤】http://docs.python.jp/3/library/codecs.html
【正】https://docs.python.jp/3/library/codecs.html#module-codecs

・10ページ 脚注
【誤】(-3)**2"
【正】(-3)**2

・11ページ 脚注
【誤】「9.4.2. Decimalオブジェクト」参照(http://docs.python.jp/3/library/decimal.html#decimal-objects)
【正】「Decimalオブジェクト」参照(https://docs.python.jp/3/library/decimal.html#decimal.Decimal)

・12ページ 脚注
【誤】「9.5. fractions」参照(http://docs.python.jp/3/library/fractions.html)
【正】「fractions ̶ 有理数」参照(https://docs.python.jp/3/library/fractions.html#fractions.Fraction)

・17ページ 脚注
【誤】
† http://docs.python.jp/3/library/stdtypes.html#text-sequence-type-str
‡ http://docs.python.jp/3/library/stdtypes.html?highlight=printf#string-methods
§ http://docs.python.jp/3/library/string.html#string-formatting
¶ http://docs.python.jp/3/library/stdtypes.html?highlight=printf#old-string-formatting
【正】
† https://docs.python.jp/3/library/stdtypes.html#textseq
‡ https://docs.python.jp/3/library/stdtypes.html#string-methods
§ https://docs.python.jp/3/library/string.html#formatstrings
¶ https://docs.python.jp/3/library/stdtypes.html#old-string-formatting

・21ページ 上から1-3行目
【誤】print関数は、与えられた引数(複数可)の値を表示する。引数(文字列、浮動小数点数、そして文字列など)が複数あるときの扱いは、書きたい式を書いただけの上記電卓の例などとは異なる。
【正】print()関数は、与えられた引数(複数可)の値を表示する。この関数が複数の引数、浮動小数点数、文字列を扱う手法は、式のみを単純に書いた場合(電卓の例のように)とは異なる。

・24ページ 下から10行目
【誤】renge()
【正】range()

・43ページ 下から15行目
【誤】fast-out
【正】first-out

・48ページ 脚注
【誤】「4.6. シーケンス型 --- list、tuple、range」参照†
† http://docs.python.jp/3/library/stdtypes.html#sequence-types-list-tuple-range
【正】「シーケンス型 --- list、tuple、range」参照†
† https://docs.python.jp/3/library/stdtypes.html#sequence-types-list-tuple-range

・51ページ 脚注
【誤】「4.10. マッピング型 --- dict」†参照
† http://docs.python.jp/3/library/stdtypes.html#mapping-types-dict
【正】「マッピング型 --- dict」†参照
† https://docs.python.jp/3/library/stdtypes.html#typesmapping

・53ページ 下から5-10行目
【誤】

>>> for q, a in zip(questions, answers):
... print('What is your {0}?It is {1}.'.format(q, a))
...
What is your name?It is lancelot.
What is your quest?It is the holy grail.
What is your favorite color?It is blue.
【正】
>>> for q, a in zip(questions, answers):
... print('What is your {0}? It is {1}.'.format(q, a))
...
What is your name? It is lancelot.
What is your quest? It is the holy grail.
What is your favorite color? It is blue.

・55ページ 上から9行目
【誤】if A and C
【正】A and C

・57ページ 下から7行目
【誤】fibo.py
【正】.py

・65ページ 上から19行目
【誤】ドット区切りモジュール名
【正】ドット区切モジュール名

・75ページ 下から1行目
【誤】6.1.3. 書式指定文字列の文法
【正】書式指定文字列の文法

・76ページ 上から8行目
【誤】4.7.2. printf形式の文字列書式化
【正】printf形式の文字列書式化

・77ページ 下から3-6行目
【誤】
>>> f.readline()
'This is the first line of the file.\n'
>>> f.readline()
'Second line of the file\n'>>> f.readline()''}
【正】
>>> f.readline()
'This is the first line of the file.\n'
>>> f.readline()
'Second line of the file\n'
>>> f.readline()
''

・79ページ 脚注取る

・80ページ 下から11行目
【誤】'[1, "simple", "list"]']
【正】'[1, "simple", "list"]'

・84ページ 下から2行目
【誤】5. ビルトイン例外
【正】組み込み例外

・85ページ 下から1-5行目
【誤】try文に複数の未処理例外を入れれば、さまざまな例外へのハンドラを設けられる。ただし一度の処理で実行されるハンドラは1つまでである。ハンドラは、同じtry文中のtry節内で起きた例外のみを処理する。他の未処理例外内で発生した例外を処理することはない。単一の未処理例外で複数の例外を指定することも可能で、このときはタプルを使う:
【正】try文に複数のtry節を入れれば、さまざまな例外へのハンドラを設けられる。ただし一度の処理で実行されるハンドラは1つまでである。ハンドラはtry節の中で起きた例外を処理するのみで、同じtry文の中の他のハンドラ(except節)の中で起きた例外を処理することはない。単一のtry節で複数の例外を指定することも可能で、このときはタプルを使う:

・91ページ 上から1行目
【誤】result is 2.0
【正】答えは2.0

・131ページ 上から2行目
【誤】decialモジュール
【正】decimalモジュール

・134ページ 上から2行目
【誤】pyenv-3.4
【正】pyvenv-3.4

・134ページ 下から11行目
【誤】"Python"
【正】"python"

・135ページ 脚注
【誤】http://docs.python.jp/3.4/installing/index.html
【正】https://docs.python.jp/3/installing/index.html#installing-index

・137ページ 脚注
【誤】† http://docs.python.jp/3.4/installing/index.html
【正】† https://docs.python.jp/3/installing/index.html#installing-index

・139ページ 下から3行目
【誤】リファレンスマニュアル
【正】Python言語リファレンス

・140ページ 上から8行目
【誤】http://www.python.jp/doc
【正】https://docs.python.jp/

・148ページ 上から12行目
【誤】文字列フォーマットのシンタックス
【正】書式指定文字列の文法

・148ページ 脚注
【誤】† http://docs.python.jp/3/library/stdtypes.html#str.format
【正】† https://docs.python.jp/3/library/string.html#formatstrings

・161ページ 上から1行目
【誤】インタープリター
【正】インタープリタ

・161ページ 下から2行目
【誤】Pyton
【正】Python

・162ページ 上から6行目
【誤】リファレンスマニュアル
【正】Python言語リファレンス

・169ページ 上から8行目
【誤】Pythonリファレンスマニュアル
【正】Python言語リファレンス

・169ページ 下から2行目
【誤】Pythonリファレンスマニュアル
【正】Python言語リファレンス

・170ページ 上から4行目
【誤】Pythonリファレンスマニュアル
【正】Python言語リファレンス

・170ページ 上から6-11行目
【誤】トリプルクオートされた(三重引用符に囲まれた)文字列
引用符()またはアポストロフィ(')のインスタンス3個で囲まれた文字列。機能的には単引用符の文字列に不可能なことを提供するわけではないが、いくつかの理由により有用だ。文字列内にエスケープなしで単引用符や二重引用符を使うことができ、また継続記号なしに複数行にまたがることができるため、docstringを書く際に特に便利である。
【正】トリプルクォートされた(三重引用符に囲まれた)文字列
ダブルクォート(")またはシングルクォート(')(アポストロフィ)のインスタンス3個で囲まれた文字列。機能的にはシングルクォートの文字列に不可能なことを提供するわけではないが、いくつかの理由により有用だ。文字列内にエスケープなしでシングルクォートやダブルクォートを使うことができ、また継続記号なしに複数行にまたがることができるため、docstringを書く際に特に便利である。

・173ページ 下から15行目
【誤】___iter__()
【正】__iter__()

・179ページ 上から3行目
【誤】Pythonリファレンスマニュアル
【正】Python言語リファレンス

・211ページ 下から12行目
【誤】導入すればよい
【正】導入すれば利用可能だ

・214ページ 下から10行目
【誤】打ち込むこれが〜
【正】打ち込む−これが〜

・214ページ 下から7行目
【誤】リストを取るこれで〜
【正】リストを取る−これで〜

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]