Book description
認知科学、神経生物学、教育心理学の研究に基づき、イラストや写真を多用したビジュアル重視の画期的なPythonの入門書です。脳の働きに注目し、脳を活性化させる学習効果が高い独自のスタイルで、効率的にPythonプログラミングのスキルを身に付けることが可能です。前半でPythonの基本や特徴を一通り説明してから、実際に独自のWebアプリケーションをステップバイステップで構築する作業を通じて、データベース管理、例外処理、データ処理などの理解を深めていきます。手を動かしながら学べるPython入門書の決定版です。
Table of contents
- 序章
- 目次 (1/5)
- 目次 (2/5)
- 目次 (3/5)
- 目次 (4/5)
- 目次 (5/5)
-
1章 基本
-
さっそく始める
- IDLEのウィンドウを理解する
- 1行ずつコードを実行する
- 関数 + モジュール = 標準ライブラリ
- データ構造を備えている
- メソッドを呼び出すと結果が得られる
- コードブロックをいつ実行するかを決める
- ifでは他(else)に何が使えるの?
- ブロックにブロックを埋め込むことができる
- Python Shellに戻る
- シェルで試す
- オブジェクトのシーケンスを反復処理する
- 指定した回数だけ反復処理する
- 課題1の結果をコードに適用する
- 実行を一時停止する
- Pythonで乱数整数を生成する (1/2)
- Pythonで乱数整数を生成する (2/2)
- 本格的なビジネスアプリケーションのコードを書く
- インデントにイライラ?
- 関数について助けを求める
- rangeを試してみる
- 1章のコード
-
さっそく始める
-
2章 リストデータ
-
順序付きデータを扱う
- 数値、文字列、そしてオブジェクト
- 4つの組み込みデータ構造
- 順序なしデータ構造:辞書
- 重複を防ぐデータ構造:集合
- リテラルでリストを作成する
- コードが数行以上のときはエディタを使う
- 実行時にリストを「拡張」する
- 「in」でメンバーであるかを調べる
- リストからオブジェクトを削除する
- リストをオブジェクトで拡張する
- リストにオブジェクトを挿入する (1/2)
- リストにオブジェクトを挿入する (2/2)
- データ構造のコピー方法
- リストの角かっこ表記の使い方
- リストは開始、終了、刻みを理解する
- リストの開始と終了
- リストからスライスする (1/2)
- リストからスライスする (2/2)
- forループはリストを理解する
- Marvinのスライスの詳細
- リストが向かないとき
- 2章のコード(1/2)
-
順序付きデータを扱う
-
3章 構造化データ
-
構造化データを扱う
- 辞書はキーと値のペアを格納する
- コード内の辞書の見分け方
- 挿入順序は保証されない
- []を使った値の検索
- 実行時に辞書を使う
- 頻度を更新する
- 辞書を反復処理する
- キーと値を反復処理する
- 「items」を使って辞書を反復処理する
- 辞書はどれくらい動的なのか?
- 実行時のKeyErrorを避ける
- 「in」を使ってメンバーかどうかを調べる
- 使う前には必ず初期化
- 「in」の代わりに「not in」を使う
- setdefaultメソッドを使う
- 効率的に集合を作成する
- 集合のメソッドを使う (1/2)
- 集合のメソッドを使う (2/2)
- タプルの存在理由
- 組み込みデータ構造を組み合わせる (1/2)
- 組み込みデータ構造を組み合わせる (2/2)
- 複合データ構造のデータにアクセスする
- 3章のコード(1/2)
-
構造化データを扱う
- 4章 コードの再利用
-
5章 Webアプリケーションの構築
-
現実に目を向ける
- Python:すでにわかっていること
- Webアプリケーションに何をさせるか
- Flaskをインストールしよう
- Flaskはどのように機能するのか?
- Flaskアプリケーションを初めて実行する
- Flaskアプリケーションオブジェクトの作成
- 関数をURLでデコレートする
- Webアプリケーションを動かす
- Webに機能を公開する
- HTMLフォームの作成
- テンプレートはWebページに対応
- Flaskからテンプレートをレンダリングする
- WebアプリケーションのHTMLフォームを表示する
- テンプレートコードを実行するための準備
- HTTPステータスコードを理解する
- ポストされたデータを処理する
- 編集/停止/開始/テストのサイクルを改善する
- FlaskでHTMLフォームデータにアクセスする
- Webアプリケーションでリクエストデータを使う
- 結果をHTMLとして作成する (1/2)
- 結果をHTMLとして作成する (2/2)
- クラウドのための準備をする
- 5章のコード
-
現実に目を向ける
-
6章 データの格納と操作
-
データをファイルに 格納する
- Webアプリケーションのデータを使って何かを行う
- Pythonはオープン、処理、クローズをサポート
- 既存ファイルからデータを読み込む
- さらに優れたオープン、処理、クローズ:with (1/2)
- さらに優れたオープン、処理、クローズ:with (2/2)
- Webアプリケーションを介してログを見る
- ソースを見て生のデータを調べる
- (データを)エスケープする
- Webアプリケーションでログ全体を見る
- 特定のリクエスト属性をロギングする
- 1行の区切りデータをロギングする
- 生のデータから読みやすいデータへ変換する (1/2)
- 生のデータから読みやすいデータへ変換する (2/2)
- HTMLで読みやすい出力にする
- テンプレートに表示ロジックを埋め込む
- Jinja2で読みやすい出力にする
- Webアプリケーションコードの現在の状態
- データに問い合わせる
- 6章のコード
-
データをファイルに 格納する
-
7章 データベースの利用
-
Pythonの DB-APIを使う
- Webアプリケーションをデータベース対応にする
- タスク1:MySQLサーバを インストールする
- PythonのDB-APIとは
- タスク2:Python用のMySQLデー タベースドライバをインストールする
- MySQL-Connector/Pythonの インストール
- タスク3:Webアプリケーションのデータベースとテーブルを作成する
- ログデータの構造を決める
- テーブルがデータを格納できる状態になっているかを確認する (1/2)
- テーブルがデータを格納できる状態になっているかを確認する (2/2)
- タスク4:データベースとテーブルを扱うコードを作成する
- データの格納は半分だけ
- データベース用のコードを再利用する最善の方法は?
- 再利用したい部分を考える
- インポートはどうなの?
- このパターンには見覚えあり
- 悪い知らせは実はそれほど悪くない
- 7章のコード
-
Pythonの DB-APIを使う
- 8章 クラス入門
-
9章 コンテキストマネジメントプロトコル
-
with文を使う
- Webアプリケーションコードを 共有する最善の方法は?
- メソッドを使ってコンテキストを管理する
- コンテキストマネージャの動作はわかっています
- 新しいコンテキストマネージャクラスを作成する
- データベース構成を使ってクラスを初期化する
- __enter__で前処理を行う
- __exit__で後処理を行う
- Webアプリケーションコードを再考する(1/2)
- 「log_request」関数を思い出す
- 「log_request」関数を修正する
- 「view_the_log」関数を思い出す
- 変更するのはコードだけではない
- 「view_the_log」関数を修正する
- データに関する質問に答える
- 9章のコード(1/2)
-
with文を使う
- 10章 関数デコレータ
-
11章 例外処理
-
うまくいかないときに行うこと
- データベースは必ずしも利用できるわけではない
- Web攻撃は深刻な悩み
- 入出力は(ときどき)遅い
- 関数呼び出しは失敗することがある
- エラーが発生しやすいコードには 常にtryを使う
- tryは1つだが、exceptはいくつも追加できる
- 全捕捉例外ハンドラ
- 「sys」から例外について学ぶ
- 全捕捉例外ハンドラ(改訂版)
- Webアプリケーションコードに戻る
- 例外を静かに処理する (1/2)
- 例外を静かに処理する (2/2)
- その他のデータベースエラーを処理する
- 密結合のコードを避ける
- DBcmモジュールの再検討
- カスタム例外を作成する
- 「DBcm」では他にどのような問題が発生するの?
- SQLErrorの処理は異なる
- SQLErrorを投げる
- 簡単なおさらい:堅牢にする
- 待ち時間の対応? それは状況次第
- 11章のコード(1/3)
-
うまくいかないときに行うこと
- 11 3/4章 スレッド入門
-
12章 高度なイテレーション
-
猛烈にループする
- CSVデータをリストとして読み込む
- CSVデータを辞書として読み込む
- 生データの中の不要な文字を除去してから分割
- メソッド呼び出しをつなげるときには注意する
- データを必要なフォーマットに変換する
- リストの辞書に変換する
- リスト中のパターンを探す
- パターンを内包表記に変換する
- 内包表記を詳しく調べる
- 辞書内包表記を指定する
- フィルタで内包表記を拡張する
- 複雑なところはPython流に対応する (1/2)
- 複雑なところはPython流に対応する (2/2)
- 集合内包表記の動作
- 「タプル内包表記」はなぜないの?
- コードを囲む丸かっこ == ジェネレータ
- リスト内包表記を使ってURLを処理する
- ジェネレータを使ってURLを処理する
- 関数を定義する
- ジェネレータ関数の威力
- ジェネレータ関数をたどる(1/2)
- 最後の1つの質問
- 12章のコード
- お別れのとき
-
猛烈にループする
- 付録A インストール
- 付録B PythonAnywhere
- 付録C 取り上げなかった上位10個のトピック
- 付録D 取り上げなかった上位10個のプロジェクト
- 付録E 参加する
- 索引 (1/4)
- 索引 (2/4)
- 索引 (3/4)
- 索引 (4/4)
Product information
- Title: Head First Python 第2版 ―頭とからだで覚えるPythonの基本
- Author(s):
- Release date: March 2018
- Publisher(s): O'Reilly Japan, Inc.
- ISBN: 9784873118291
You might also like
book
入門 Python 3 第2版
データサイエンスやウェブ開発、セキュリティなど、さまざまな分野で人気を獲得してきているPython。本書は、ベストセラー『入門 Python 3』の6年ぶりの改訂版で、プログラミング初級者を対象としたPythonの入門書です。プログラミングおよびPythonの基礎から、ウェブ、データベース、ネットワーク、並行処理といった応用まで、実践を見据えたPythonプログラミングをわかりやすく丁寧に説明します。Python 3.9に対応し、f文字列などの新機能も追加され大幅にボリュームアップしました。Pythonの機能をひと通り網羅し、リファレンスとしても便利です。
book
Cython ―Cとの融合によるPythonの高速化
強力なライブラリを豊富に備え、科学計算から統計分析、金融工学まで利用が広がるPython。スクリプト言語とは思えない高速性の秘密が、NumPyやSciPyなどのPythonパッケージで広く使われているCythonです。CythonはPythonプログラムの実装を高速化するコンパイラであると同時に、C/C++で書かれたライブラリをPythonから利用できるようにするブリッジとしての役割も果たします。本書はPythonの表現力とC/C++の速さを備えたCythonを使って、高速なシステムを効率的に開発する手法を示します。科学技術計算や統計分析の分野では恒常的にある「Pythonを高速化したい」というニーズに応える一冊です。
book
Optimized C++ ―最適化、高速化のためのプログラミングテクニック
本書は性能に影響する要因の特性をしっかり理解し、正しく測定することによって性能上の問題を引き起こしている「ホットスポット」を特定し、どのような最適化が可能であり、採用すべきなのかを詳しく解説します。従来の文や式の最適化、コンパイラオプションだけでなく、性能チューニングの原則と、文字列、アルゴリズム、動的変数割り当て、カスタムライブラリ、探索と整列、データ構造、入出力、並列処理、メモリ管理といったあらゆる角度からの最適化テクニックを、「コード中毒」の著者が実際に直面したエピソードを交え紹介します。より高速なプログラムを必要とするプログラマに不可欠な内容です。C++11/C++14対応。
book
詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識
OpenCVの開発者によるベストセラー書の改訂版。最新のC++インタフェースに対応。OpenCVは現在、ロボットの視覚システムだけでなくスマホやパソコンの顔認証、画像アプリやセキュリティ監視の人物検出、製造、医療、自動運転車、ゲームやARアプリ、さらには機械学習に代表される人工知能の研究など、さまざまな分野で利用されています。本書では、カメラ入力やファイル出力といった簡単な使い方から、画像の変換やセグメンテーション、テンプレートマッチング、パターン認識、特徴量、物体や動きのトラッキング、ステレオビジョンからの3Dの再構成、機械学習まで、基礎から丁寧かつ詳細に解説します。関数のリファレンスとしても利用可能です。