Head First Python 第2版 ―頭とからだで覚えるPythonの基本

Book description

認知科学、神経生物学、教育心理学の研究に基づき、イラストや写真を多用したビジュアル重視の画期的なPythonの入門書です。脳の働きに注目し、脳を活性化させる学習効果が高い独自のスタイルで、効率的にPythonプログラミングのスキルを身に付けることが可能です。前半でPythonの基本や特徴を一通り説明してから、実際に独自のWebアプリケーションをステップバイステップで構築する作業を通じて、データベース管理、例外処理、データ処理などの理解を深めていきます。手を動かしながら学べるPython入門書の決定版です。

Table of contents

  1. 序章
    1. この本が向いている人
    2. あなたの考えはわかっています
    3. あなたの「脳」がどう考えるかも わかっています
    4. メタ認知:思考について考える
    5. この本で工夫したこと
    6. 初めに読んでね(1/2)
    7. 謝辞
  2. 目次 (1/5)
  3. 目次 (2/5)
  4. 目次 (3/5)
  5. 目次 (4/5)
  6. 目次 (5/5)
  7. 1章 基本
    1. さっそく始める
      1. IDLEのウィンドウを理解する
      2. 1行ずつコードを実行する
      3. 関数 + モジュール = 標準ライブラリ
      4. データ構造を備えている
      5. メソッドを呼び出すと結果が得られる
      6. コードブロックをいつ実行するかを決める
      7. ifでは他(else)に何が使えるの?
      8. ブロックにブロックを埋め込むことができる
      9. Python Shellに戻る
      10. シェルで試す
      11. オブジェクトのシーケンスを反復処理する
      12. 指定した回数だけ反復処理する
      13. 課題1の結果をコードに適用する
      14. 実行を一時停止する
      15. Pythonで乱数整数を生成する (1/2)
      16. Pythonで乱数整数を生成する (2/2)
      17. 本格的なビジネスアプリケーションのコードを書く
      18. インデントにイライラ?
      19. 関数について助けを求める
      20. rangeを試してみる
      21. 1章のコード
  8. 2章 リストデータ
    1. 順序付きデータを扱う
      1. 数値、文字列、そしてオブジェクト
      2. 4つの組み込みデータ構造
      3. 順序なしデータ構造:辞書
      4. 重複を防ぐデータ構造:集合
      5. リテラルでリストを作成する
      6. コードが数行以上のときはエディタを使う
      7. 実行時にリストを「拡張」する
      8. 「in」でメンバーであるかを調べる
      9. リストからオブジェクトを削除する
      10. リストをオブジェクトで拡張する
      11. リストにオブジェクトを挿入する (1/2)
      12. リストにオブジェクトを挿入する (2/2)
      13. データ構造のコピー方法
      14. リストの角かっこ表記の使い方
      15. リストは開始、終了、刻みを理解する
      16. リストの開始と終了
      17. リストからスライスする (1/2)
      18. リストからスライスする (2/2)
      19. forループはリストを理解する
      20. Marvinのスライスの詳細
      21. リストが向かないとき
      22. 2章のコード(1/2)
  9. 3章 構造化データ
    1. 構造化データを扱う
      1. 辞書はキーと値のペアを格納する
      2. コード内の辞書の見分け方
      3. 挿入順序は保証されない
      4. []を使った値の検索
      5. 実行時に辞書を使う
      6. 頻度を更新する
      7. 辞書を反復処理する
      8. キーと値を反復処理する
      9. 「items」を使って辞書を反復処理する
      10. 辞書はどれくらい動的なのか?
      11. 実行時のKeyErrorを避ける
      12. 「in」を使ってメンバーかどうかを調べる
      13. 使う前には必ず初期化
      14. 「in」の代わりに「not in」を使う
      15. setdefaultメソッドを使う
      16. 効率的に集合を作成する
      17. 集合のメソッドを使う (1/2)
      18. 集合のメソッドを使う (2/2)
      19. タプルの存在理由
      20. 組み込みデータ構造を組み合わせる (1/2)
      21. 組み込みデータ構造を組み合わせる (2/2)
      22. 複合データ構造のデータにアクセスする
      23. 3章のコード(1/2)
  10. 4章 コードの再利用
    1. 関数とモジュール
      1. 関数を使ってコードを再利用する
      2. 関数入門
      3. 関数を呼び出す
      4. 関数は引数を取る
      5. 値を1つ返す
      6. 複数の値を返す
      7. 組み込みデータ構造をおさらいする
      8. 汎用性のある便利な関数を作成する
      9. 別の関数を作成する(1/3)
      10. 引数のデフォルト値を指定する
      11. 位置指定とキーワード指定
      12. 関数についてわかったことを更新する
      13. コマンドプロンプトからPythonを実行する
      14. setup.pyの作成
      15. 配布ファイルの作成
      16. pipによるパッケージのインストール
      17. 値渡しのデモ
      18. 参照渡しのデモ
      19. テストツールのインストール
      20. PEP 8にどのくらい準拠しているか?
      21. 違反メッセージを理解する
      22. 4章のコード
  11. 5章 Webアプリケーションの構築
    1. 現実に目を向ける
      1. Python:すでにわかっていること
      2. Webアプリケーションに何をさせるか
      3. Flaskをインストールしよう
      4. Flaskはどのように機能するのか?
      5. Flaskアプリケーションを初めて実行する
      6. Flaskアプリケーションオブジェクトの作成
      7. 関数をURLでデコレートする
      8. Webアプリケーションを動かす
      9. Webに機能を公開する
      10. HTMLフォームの作成
      11. テンプレートはWebページに対応
      12. Flaskからテンプレートをレンダリングする
      13. WebアプリケーションのHTMLフォームを表示する
      14. テンプレートコードを実行するための準備
      15. HTTPステータスコードを理解する
      16. ポストされたデータを処理する
      17. 編集/停止/開始/テストのサイクルを改善する
      18. FlaskでHTMLフォームデータにアクセスする
      19. Webアプリケーションでリクエストデータを使う
      20. 結果をHTMLとして作成する (1/2)
      21. 結果をHTMLとして作成する (2/2)
      22. クラウドのための準備をする
      23. 5章のコード
  12. 6章 データの格納と操作
    1. データをファイルに 格納する
      1. Webアプリケーションのデータを使って何かを行う
      2. Pythonはオープン、処理、クローズをサポート
      3. 既存ファイルからデータを読み込む
      4. さらに優れたオープン、処理、クローズ:with (1/2)
      5. さらに優れたオープン、処理、クローズ:with (2/2)
      6. Webアプリケーションを介してログを見る
      7. ソースを見て生のデータを調べる
      8. (データを)エスケープする
      9. Webアプリケーションでログ全体を見る
      10. 特定のリクエスト属性をロギングする
      11. 1行の区切りデータをロギングする
      12. 生のデータから読みやすいデータへ変換する (1/2)
      13. 生のデータから読みやすいデータへ変換する (2/2)
      14. HTMLで読みやすい出力にする
      15. テンプレートに表示ロジックを埋め込む
      16. Jinja2で読みやすい出力にする
      17. Webアプリケーションコードの現在の状態
      18. データに問い合わせる
      19. 6章のコード
  13. 7章 データベースの利用
    1. Pythonの DB-APIを使う
      1. Webアプリケーションをデータベース対応にする
      2. タスク1:MySQLサーバを インストールする
      3. PythonのDB-APIとは
      4. タスク2:Python用のMySQLデー タベースドライバをインストールする
      5. MySQL-Connector/Pythonの インストール
      6. タスク3:Webアプリケーションのデータベースとテーブルを作成する
      7. ログデータの構造を決める
      8. テーブルがデータを格納できる状態になっているかを確認する (1/2)
      9. テーブルがデータを格納できる状態になっているかを確認する (2/2)
      10. タスク4:データベースとテーブルを扱うコードを作成する
      11. データの格納は半分だけ
      12. データベース用のコードを再利用する最善の方法は?
      13. 再利用したい部分を考える
      14. インポートはどうなの?
      15. このパターンには見覚えあり
      16. 悪い知らせは実はそれほど悪くない
      17. 7章のコード
  14. 8章 クラス入門
    1. 振る舞いと状態を 抽象化する
      1. with文を使う
      2. オブジェクト指向入門
      3. クラスからオブジェクトを生成する
      4. オブジェクトは振る舞いを共有するが、 状態は共有しない
      5. CountFromByでさらに処理を行う
      6. メソッドの呼び出し:詳細を理解する
      7. クラスにメソッドを追加する
      8. selfの重要性
      9. スコープを処理する
      10. 属性名の前に「self」を付ける
      11. 使う前に(属性)値を初期化する
      12. __init__が属性を初期化する
      13. __init__を使って属性を初期化する
      14. CountFromByの表現を理解する
      15. CountFromByの表現方法を定義する
      16. CountFromByに適切なデフォルトを設定する
      17. クラス:わかったこと
      18. 8章のコード
  15. 9章 コンテキストマネジメントプロトコル
    1. with文を使う
      1. Webアプリケーションコードを 共有する最善の方法は?
      2. メソッドを使ってコンテキストを管理する
      3. コンテキストマネージャの動作はわかっています
      4. 新しいコンテキストマネージャクラスを作成する
      5. データベース構成を使ってクラスを初期化する
      6. __enter__で前処理を行う
      7. __exit__で後処理を行う
      8. Webアプリケーションコードを再考する(1/2)
      9. 「log_request」関数を思い出す
      10. 「log_request」関数を修正する
      11. 「view_the_log」関数を思い出す
      12. 変更するのはコードだけではない
      13. 「view_the_log」関数を修正する
      14. データに関する質問に答える
      15. 9章のコード(1/2)
  16. 10章 関数デコレータ
    1. 関数を包む
      1. (手元のマシンではなく)Webサーバでコードを実行する
      2. Flaskのセッションはステータスを加える
      3. 辞書検索でステータスを取得する
      4. セッションを使ってログインを管理する
      5. ログアウトとステータスチェック用のコードを書く (1/2)
      6. ログアウトとステータスチェック用のコードを書く (2/2)
      7. 関数に関数を渡す
      8. 渡した関数を呼び出す
      9. 引数のリストを受け取る
      10. 引数のリストを処理する
      11. 引数の辞書を受け取る
      12. 引数の辞書を処理する
      13. あらゆる型の引数をいくつでも受け取る
      14. 関数デコレータを作成する
      15. 最終段階:引数を処理する
      16. デコレータを利用する
      17. /viewlogへのアクセス制限に戻る
      18. 10章のコード(1/2)
  17. 11章 例外処理
    1. うまくいかないときに行うこと
      1. データベースは必ずしも利用できるわけではない
      2. Web攻撃は深刻な悩み
      3. 入出力は(ときどき)遅い
      4. 関数呼び出しは失敗することがある
      5. エラーが発生しやすいコードには 常にtryを使う
      6. tryは1つだが、exceptはいくつも追加できる
      7. 全捕捉例外ハンドラ
      8. 「sys」から例外について学ぶ
      9. 全捕捉例外ハンドラ(改訂版)
      10. Webアプリケーションコードに戻る
      11. 例外を静かに処理する (1/2)
      12. 例外を静かに処理する (2/2)
      13. その他のデータベースエラーを処理する
      14. 密結合のコードを避ける
      15. DBcmモジュールの再検討
      16. カスタム例外を作成する
      17. 「DBcm」では他にどのような問題が発生するの?
      18. SQLErrorの処理は異なる
      19. SQLErrorを投げる
      20. 簡単なおさらい:堅牢にする
      21. 待ち時間の対応? それは状況次第
      22. 11章のコード(1/3)
  18. 11 3/4章 スレッド入門
    1. 待ち時間を処理する
      1. 待ち時間:何をすべき?
      2. どのようにデータベースに問い合わせているの?
      3. データベースのinsertとselectは違う
      4. 同時に複数のことを行う
      5. がっかりしないでスレッドを使う
      6. 物事には順序がある:パニくらない
      7. 大丈夫、Flaskが利用できます
      8. Webアプリケーションは堅牢になったのか?
      9. 11 3/4章のコード(1/2)
  19. 12章 高度なイテレーション
    1. 猛烈にループする
      1. CSVデータをリストとして読み込む
      2. CSVデータを辞書として読み込む
      3. 生データの中の不要な文字を除去してから分割
      4. メソッド呼び出しをつなげるときには注意する
      5. データを必要なフォーマットに変換する
      6. リストの辞書に変換する
      7. リスト中のパターンを探す
      8. パターンを内包表記に変換する
      9. 内包表記を詳しく調べる
      10. 辞書内包表記を指定する
      11. フィルタで内包表記を拡張する
      12. 複雑なところはPython流に対応する (1/2)
      13. 複雑なところはPython流に対応する (2/2)
      14. 集合内包表記の動作
      15. 「タプル内包表記」はなぜないの?
      16. コードを囲む丸かっこ == ジェネレータ
      17. リスト内包表記を使ってURLを処理する
      18. ジェネレータを使ってURLを処理する
      19. 関数を定義する
      20. ジェネレータ関数の威力
      21. ジェネレータ関数をたどる(1/2)
      22. 最後の1つの質問
      23. 12章のコード
      24. お別れのとき
  20. 付録A インストール
    1. Pythonのインストール
      1. WindowsにPython 3をインストールする
      2. WindowsのPython 3を確認する
      3. WindowsのPython 3に追加する
      4. macOS(Mac OS X)にPython 3をインストールする
      5. macOSのPython 3を確認して設定する
      6. LinuxにPython 3をインストールする
  21. 付録B PythonAnywhere
    1. Webアプリケーションのデプロイ
      1. ステップ0:準備を少し
      2. ステップ1:サインアップ
      3. ステップ2:クラウドへのファイルのアップロード
      4. ステップ3:コードの取得とインストール
      5. ステップ4:初期Webアプリケーションの作成(1/2)
      6. ステップ5:Webアプリケーションの設定
      7. ステップ6:クラウドベースのWebアプリケーションを試す
  22. 付録C 取り上げなかった上位10個のトピック
    1. いつでもさらに 学ぶことがある
      1. 1. Python 2はどうなの?
      2. 2. 仮想プログラミング環境
      3. 3. オブジェクト指向の詳細
      4. 4. 文字列などのフォーマット
      5. 5. 整列
      6. 6. 標準ライブラリの詳細
      7. 7. 並列実行
      8. 8. tkinterを使ったGUI(およびturtleの楽しさ)
      9. 9. テストするまで終わらない
      10. 10. デバッグ、デバッグ、デバッグ
  23. 付録D 取り上げなかった上位10個のプロジェクト
    1. さらなるツール、 ライブラリ、モジュール
      1. 1. >>>の以外の手段
      2. 2. IDLEの以外の手段
      3. 3. Jupyter Notebook:WebベースのIDE
      4. 4. データサイエンスを行う
      5. 5. Web開発
      6. 6. Webデータ
      7. 7. さらなるデータソース
      8. 8. プログラミングツール
      9. 9. Kivy:「これまでの最上級プロジェクト」に選んだもの
      10. 10. 代替となる実装
  24. 付録E 参加する
    1. Pythonコミュニティ
      1. BDFL(Benevolent Dictator for Life:慈悲深き終身独裁者)
      2. 寛容なコミュニティ:多様性の尊重
      3. Pythonポッドキャスト
      4. Zen of Python(Pythonの禅)
      5. お勧めのPython書籍
  25. 索引 (1/4)
  26. 索引 (2/4)
  27. 索引 (3/4)
  28. 索引 (4/4)

Product information

  • Title: Head First Python 第2版 ―頭とからだで覚えるPythonの基本
  • Author(s): Paul Barry, 嶋田 健志, 木下 哲也
  • Release date: March 2018
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873118291

You might also like

book

入門 Python 3 第2版

by Bill Lubanovic, 鈴木 駿, 長尾 高弘

データサイエンスやウェブ開発、セキュリティなど、さまざまな分野で人気を獲得してきているPython。本書は、ベストセラー『入門 Python 3』の6年ぶりの改訂版で、プログラミング初級者を対象としたPythonの入門書です。プログラミングおよびPythonの基礎から、ウェブ、データベース、ネットワーク、並行処理といった応用まで、実践を見据えたPythonプログラミングをわかりやすく丁寧に説明します。Python 3.9に対応し、f文字列などの新機能も追加され大幅にボリュームアップしました。Pythonの機能をひと通り網羅し、リファレンスとしても便利です。

book

Cython ―Cとの融合によるPythonの高速化

by Kurt W. Smith, 中田 秀基, 長尾 高弘

強力なライブラリを豊富に備え、科学計算から統計分析、金融工学まで利用が広がるPython。スクリプト言語とは思えない高速性の秘密が、NumPyやSciPyなどのPythonパッケージで広く使われているCythonです。CythonはPythonプログラムの実装を高速化するコンパイラであると同時に、C/C++で書かれたライブラリをPythonから利用できるようにするブリッジとしての役割も果たします。本書はPythonの表現力とC/C++の速さを備えたCythonを使って、高速なシステムを効率的に開発する手法を示します。科学技術計算や統計分析の分野では恒常的にある「Pythonを高速化したい」というニーズに応える一冊です。

book

Optimized C++ ―最適化、高速化のためのプログラミングテクニック

by Kurt Guntheroth, 黒川 利明, 島 敏博

本書は性能に影響する要因の特性をしっかり理解し、正しく測定することによって性能上の問題を引き起こしている「ホットスポット」を特定し、どのような最適化が可能であり、採用すべきなのかを詳しく解説します。従来の文や式の最適化、コンパイラオプションだけでなく、性能チューニングの原則と、文字列、アルゴリズム、動的変数割り当て、カスタムライブラリ、探索と整列、データ構造、入出力、並列処理、メモリ管理といったあらゆる角度からの最適化テクニックを、「コード中毒」の著者が実際に直面したエピソードを交え紹介します。より高速なプログラムを必要とするプログラマに不可欠な内容です。C++11/C++14対応。

book

詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識

by Adrian Kaehler, Gary Bradski, 松田 晃一, 小沼 千絵, 永田 雅人, 花形 理

OpenCVの開発者によるベストセラー書の改訂版。最新のC++インタフェースに対応。OpenCVは現在、ロボットの視覚システムだけでなくスマホやパソコンの顔認証、画像アプリやセキュリティ監視の人物検出、製造、医療、自動運転車、ゲームやARアプリ、さらには機械学習に代表される人工知能の研究など、さまざまな分野で利用されています。本書では、カメラ入力やファイル出力といった簡単な使い方から、画像の変換やセグメンテーション、テンプレートマッチング、パターン認識、特徴量、物体や動きのトラッキング、ステレオビジョンからの3Dの再構成、機械学習まで、基礎から丁寧かつ詳細に解説します。関数のリファレンスとしても利用可能です。