内容紹介
実践を見据えた本格的な「Python入門書」!
Pythonが誕生して四半世紀。データサイエンスやウェブ開発、セキュリティなどさまざまな分野でPythonの人気が急上昇中です。プログラミング教育の現場でもCに代わってPythonの採用が増えてきています。本書は、プログラミングが初めてという人を対象に書かれた、Pythonの入門書です。前提とする知識は特にありません。プログラミングおよびPythonの基礎からウェブ、データベース、ネットワーク、並列処理といった応用まで、Pythonプログラミングをわかりやすく丁寧に説明します。
このような方におすすめ
Python初心者、プログラミング初学者、教職員、学生
目次
詳細目次
監訳者まえがき
まえがき
1章 Pyの味
1.1 実世界でのPython
1.2 Pythonと他言語の比較
1.3 では、なぜPythonなのか
1.4 Pythonを避けるべきとき
1.5 Python 2 vs. Python 3
1.6 Pythonのインストール
1.7 Pythonの実行
1.7.1 対話型インタープリタの使い方
1.7.2 Pythonファイルの使い方
1.7.3 次は何か
1.8 Python公案
1.9 復習課題
2章 Pyの成分:数値、文字列、変数
2.1 変数、名前、オブジェクト
2.2 数値
2.2.1 整数
2.2.2 優先順位
2.2.3 基数
2.2.4 型の変換
2.2.5 intはどれくらい大きいのか
2.2.6 浮動小数点数
2.2.7 数学関数
2.3 文字列
2.3.1 クォートを使った作成
2.3.2 str()を使った型変換
2.3.3 \によるエスケープ
2.3.4 +による連結
2.3.5 *による繰り返し
2.3.6 []による文字の抽出
2.3.7 [ start:end:step ]によるスライス
2.3.8 len()による長さの取得
2.3.9 split()による分割
2.3.10 join()による結合
2.3.11 多彩な文字列操作
2.3.12 大文字と小文字の区別、配置
2.3.13 replace()による置換
2.3.14 その他の文字列操作関数
2.4 復習課題
3章 Pyの具:リスト、タプル、辞書、集合
3.1 リストとタプル
3.2 リスト
3.2.1 []またはlist()による作成
3.2.2 list()によるほかのデータ型からリストへの変換
3.2.3 [offset]を使った要素の取り出し
3.2.4 リストのリスト
3.2.5 [offset]による要素の書き換え
3.2.6 オフセットの範囲を指定したスライスによるサブシーケンスの取り出し
3.2.7 append()による末尾への要素の追加
3.2.8 extend()または+=を使ったリストの結合
3.2.9 insert()によるオフセットを指定した要素の追加
3.2.10 delによる指定したオフセットの要素の削除
3.2.11 remove()による値に基づく要素の削除
3.2.12 pop()でオフセットを指定して要素を取り出し、削除する方法
3.2.13 index()により要素の値から要素のオフセットを知る方法
3.2.14 inを使った値の有無のテスト
3.2.15 count()を使った値の個数の計算
3.2.16 join()による文字列への変換
3.2.17 sort()による要素の並べ替え
3.2.18 len()による長さの取得
3.2.19 =による代入とcopy()によるコピー
3.3 タプル
3.3.1 ()を使ったタプルの作成
3.3.2 タプルとリストの比較
3.4 辞書
3.4.1 {}による作成
3.4.2 dict()を使った変換
3.4.3 [key]による要素の追加、変更
3.4.4 update()による辞書の結合
3.4.5 delによる指定したキーを持つ要素の削除
3.4.6 clear()によるすべての要素の削除
3.4.7 inを使ったキーの有無のテスト
3.4.8 [key]による要素の取得
3.4.9 keys()によるすべてのキーの取得
3.4.10 values()によるすべての値の取得
3.4.11 items()によるすべてのキー/値ペアの取得
3.4.12 =による代入とcopy()によるコピー
3.5 集合
3.5.1 set()による作成
3.5.2 set()によるほかのデータ型から集合への変換
3.5.3 inを使った値の有無のテスト
3.5.4 組み合わせと演算
3.6 データ構造の比較
3.7 もっと大きいデータ構造
3.8 復習課題
4章 Pyの皮:コード構造
4.1 #によるコメント
4.2 \による行の継続
4.3 if、elif、elseによる比較
4.3.1 Trueとは何か
4.4 whileによる反復処理
4.4.1 breakによるループ中止
4.4.2 continueによる次のイテレーションの開始
4.4.3 elseによるbreakのチェック
4.5 forによる反復処理
4.5.1 breakによる中止
4.5.2 continueによる次のイテレーションの開始
4.5.3 elseによるbreakのチェック
4.5.4 zip()を使った複数のシーケンスの反復処理
4.5.5 range()による数値シーケンスの生成
4.5.6 その他のイテレータ
4.6 内包表記
4.6.1 リスト内包表記
4.6.2 辞書包括表記
4.6.3 集合内包表記
4.6.4 ジェネレータ内包表記
4.7 関数
4.7.1 位置引数
4.7.2 キーワード引数
4.7.3 デフォルト引数値の指定
4.7.4 *による位置引数のタプル化
4.7.5 **によるキーワード引数の辞書化
4.7.6 docstring
4.7.7 一人前のオブジェクトとしての関数
4.7.8 関数内関数
4.7.9 クロージャ
4.7.10 無名関数:ラムダ関数
4.8 ジェネレータ
4.9 デコレータ
4.10 名前空間とスコープ
4.10.1 名前のなかの_と__
4.11 エラー処理とtry、except
4.12 独自例外の作成
4.13 復習課題
5章 Pyの化粧箱:モジュール、パッケージ、プログラム
5.1 スタンドアローンプログラム
5.2 コマンドライン引数
5.3 モジュールとimport文
5.3.1 モジュールのインポート
5.3.2 別名によるモジュールのインポート
5.3.3 必要なものだけをインポートする方法
5.3.4 モジュールサーチパス
5.4 パッケージ
5.5 Python標準ライブラリ
5.5.1 setdefault()とdefaultdict()による存在しないキーの処理
5.5.2 Counter()による要素数の計算
5.5.3 OrderedDict()によるキー順のソート
5.5.4 スタック+キュー=デック
5.5.5 itertoolsによるコード構造の反復処理
5.5.6 pprint()によるきれいな表示
5.6 バッテリー補充:ほかのPythonコードの入手方法
5.7 復習課題
6章 オブジェクトとクラス
6.1 オブジェクトとは何か
6.2 classによるクラスの定義
6.3 継承
6.4 メソッドのオーバーライド
6.5 メソッドの追加
6.6 superによる親への支援要請
6.7 selfの自己弁護
6.8 プロパティによる属性値の取得、設定
6.9 非公開属性のための名前のマングリング
6.10 メソッドのタイプ
6.11 ダックタイピング
6.12 特殊メソッド
6.13 コンポジション
6.14 モジュールではなくクラスとオブジェクトを使うべきなのはいつか
6.14.1 名前付きタプル
6.15 復習課題
7章 プロのようにデータを操る
7.1 文字列
7.1.1 Unicode
7.1.2 書式指定
7.1.3 正規表現とのマッチング
7.2 バイナリデータ
7.2.1 バイトとバイト列
7.2.2 structによるバイナリデータの変換
7.2.3 その他のバイナリデータツール
7.2.4 binasciiによるバイト/文字列の変換
7.2.5 ビット演算子
7.3 復習課題
8章 データの行き先
8.1 ファイル入出力
8.1.1 write()によるテキストファイルへの書き込み
8.1.2 read()、readline()、readlines()によるテキストファイルの読み出し
8.1.3 write()によるバイナリファイルの書き込み
8.1.4 read()によるバイナリファイルの読み出し
8.1.5 withによるファイルの自動的なクローズ
8.1.6 seek()による位置の変更
8.2 構造化されたテキストファイル
8.2.1 CSV
8.2.2 XML
8.2.3 HTML
8.2.4 JSON
8.2.5 YAML
8.2.6 セキュリティについての注意
8.2.7 設定ファイル
8.2.8 その他のデータ交換形式
8.2.9 pickleによるシリアライズ
8.3 構造化されたバイナリファイル
8.3.1 スプレッドシート
8.3.2 HDF5
8.4 リレーショナルデータベース
8.4.1 SQL
8.4.2 DB-API
8.4.3 SQLite
8.4.4 MySQL
8.4.5 PostgreSQL
8.4.6 SQLAlchemy
8.5 NoSQLデータストア
8.5.1 dbmファミリ
8.5.2 memcached
8.5.3 Redis
8.5.4 その他のNoSQL
8.6 フルテキストデータベース
8.7 復習課題
9章 ウェブを解きほぐす
9.1 ウェブクライアント
9.1.1 telnetによるテスト
9.1.2 Pythonの標準ウェブライブラリ
9.1.3 標準ライブラリを越えて
9.2 ウェブサーバー
9.2.1 Pythonによるもっとも単純なウェブサーバー
9.2.2 WSGI
9.2.3 フレームワーク
9.2.4 Bottle
9.2.5 Flask
9.2.6 Python以外のウェブサーバー
9.2.7 その他のフレームワーク
9.3 ウェブサービスとオートメーション
9.3.1 webbrowserモジュール
9.3.2 Web APIとREST
9.3.3 JSON
9.3.4 クロールとスクレイピング
9.3.5 BeautifulSoupによるHTMLのスクレイピング
9.4 復習課題
10章 システム
10.1 ファイル
10.1.1 open()による作成
10.1.2 exists()によるファイルが存在することのチェック
10.1.3 isfile()によるファイルタイプのチェック
10.1.4 copy()によるコピー
10.1.5 rename()によるファイル名の変更
10.1.6 link()、symlink()によるリンク作成
10.1.7 chmod()によるパーミッションの変更
10.1.8 chown()によるオーナーの変更
10.1.9 abspath()によるパス名の取得
10.1.10 realpath()によるシンボリックリンクパス名の取得
10.1.11 remove()によるファイルの削除
10.2 ディレクトリ
10.2.1 mkdir()による作成
10.2.2 rmdir()による削除
10.2.3 listdir()による内容リストの作成
10.2.4 chdir()によるカレントディレクトリの変更
10.2.5 glob()によるパターンにマッチするファイルのリストの作成
10.3 プログラムとプロセス
10.3.1 subprocessによるプロセスの作成
10.3.2 multiprocessingによるプロセスの作成
10.3.3 terminate()によるプロセスの強制終了
10.4 カレンダーとクロック
10.4.1 datetimeモジュール
10.4.2 timeモジュールの使い方
10.4.3 日時の読み書き
10.4.4 代替モジュール
10.5 復習課題
11章 並行処理とネットワーク
11.1 並行処理
11.1.1 キュー
11.1.2 プロセス
11.1.3 スレッド
11.1.4 グリーンスレッドとgevent
11.1.5 twisted
11.1.6 asyncio
11.1.7 Redis
11.1.8 キューを越えて
11.2 ネットワーク
11.2.1 パターン
11.2.2 パブリッシュ/サブスクライブモデル
11.2.3 TCP/IP
11.2.4 ソケット
11.2.5 ZeroMQ
11.2.6 Scapy
11.2.7 インターネットサービス
11.2.8 ウェブサービスとAPI
11.2.9 リモート処理
11.2.10 ビッグデータとMapReduce
11.2.11 クラウドでの処理
11.3 復習課題
12章 パイソニスタになろう
12.1 プログラミングについて
12.2 Pythonコードを見つけてこよう
12.3 パッケージのインストール
12.3.1 pipの使い方
12.3.2 パッケージマネージャの使い方
12.3.3 ソースからのインストール
12.4 IDE(統合開発環境)
12.4.1 IDLE
12.4.2 PyCharm
12.4.3 IPython
12.5 名前とドキュメント
12.6 コードのテスト
12.6.1 pylint、pyflakes、pep8によるチェック
12.6.2 unittestによるテスト
12.6.3 doctestによるテスト
12.6.4 noseによるテスト
12.6.5 その他のテストフレームワーク
12.6.6 継続的インテグレーション
12.7 Pythonコードのデバッグ
12.8 pdbによるデバッグ
12.9 エラーメッセージのロギング
12.10 コードの最適化
12.10.1 実行時間の計測
12.10.2 アルゴリズムとデータ構造
12.10.3 Cython、NumPy、Cエクステンション
12.10.4 PyPy
12.11 ソース管理
12.11.1 Mercurial
12.11.2 Git
12.12 本書のサンプルのクローニング
12.13 さらに学習を深めるために
12.13.1 書籍
12.13.2 ウェブサイト
12.13.3 グループ
12.13.4 カンファレンス
12.14 これからのお楽しみ
付録A Pyアート
A.1 2Dグラフィックス
A.1.1 標準ライブラリ
A.1.2 PILとPillow
A.1.3 ImageMagick
A.2 GUI(グラフィカル・ユーザー・インタフェース)
A.3 3Dグラフィックスとアニメーション
A.4 プロット、グラフ、ビジュアライゼーション
A.4.1 matplotlib
A.4.2 bokeh
A.5 ゲーム
A.6 サウンドと音楽
付録B ビジネス現場のPy
B.1 Microsoft Officeスイート
B.2 ビジネスタスクの遂行
B.3 ビジネスデータの処理
B.3.1 抽出、変換、ロード
B.3.2 その他の情報源
B.4 金融界でのPython
B.5 ビジネスデータのセキュリティ
B.6 マップ
B.6.1 ファイル形式
B.6.2 地図の描画
B.6.3 アプリケーションとデータ
付録C 科学におけるPy
C.1 標準ライブラリでの数学と統計
C.1.1 math関数
C.1.2 複素数の操作
C.1.3 decimalによる正確な浮動小数点数計算
C.1.4 fractionsによる有理数計算
C.1.5 arrayによるパッキングされたシーケンス
C.1.6 statisticsによる単純な統計
C.1.7 行列の乗算
C.2 Scientific Python
C.3 NumPy
C.3.1 array()による配列の作成
C.3.2 arange()による配列の作成
C.3.3 zeros()、ones()、random()による配列の作成
C.3.4 reshape()による配列形状の変更
C.3.5 []による要素の取得
C.3.6 配列の数学演算
C.3.7 線形代数
C.4 SciPyライブラリ
C.5 SciKitライブラリ
C.6 IPythonライブラリ
C.6.1 進化したインタープリタ
C.6.2 IPythonノートブック
C.7 Pandas
C.8 Pythonと科学分野
付録D Python 3のインストール
D.1 標準Pythonのインストール
D.1.1 Mac OS X
D.1.2 Windows
D.1.3 Linux/Unix
D.2 Anacondaのインストール
D.3 pipとvirtualenvのインストールと使い方
D.4 condaのインストールと使い方
付録E 復習課題の解答
E.1 1章 Pyの味
E.2 2章 Pyの成分:数値、文字列、変数
E.3 3章 Pyの具:リスト、タプル、辞書、集合
E.4 4章 Pyの皮:コード構造
E.5 5章 Pyの化粧箱:モジュール、パッケージ、プログラム
E.6 6章 オブジェクトとクラス
E.7 7章 プロのようにデータを操る
E.8 8章 データの行き先
E.9 9章 ウェブを解きほぐす
E.10 10章 システム
E.11 11章 並行処理とネットワーク
付録F 早見表
F.1 演算子の優先順位
F.2 文字列メソッド
F.2.1 大文字、小文字の操作
F.2.2 サーチ
F.2.3 書き換え
F.2.4 整形
F.2.5 文字列のタイプ
F.3 stringモジュールの属性
F.4 終わり
索引
続きを見る