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

人気の入門書、Head Firstシリーズ待望のPythonバージョン!

このような方におすすめ

Python初学者、学生
  • 著者Paul Barry/嶋田 健志/木下 哲也
  • 定価4,104 (本体3,800 円+税)
  • B5変 594頁 2018/03発行
  • ISBN978-4-87311-829-1
  • 定価
  • ポイント0
  • 数量

※本体価格は変更される場合があります。
※通常2〜3日以内で発送いたします。

  • 概要
  • 主要目次
  • 詳細目次

イラストや写真を多用したビジュアル重視の紙面で初心者に直観的に理解できると人気のHead FirstシリーズのPython版です。前半でPythonの基本を一通り説明してから、実際に独自のWebアプリケーションをステップバイステップで構築する作業通じて、データベース管理、例外処理、データ処理などの理解を深めていきます。手を動かしながら学べる入門書の決定版です。


    
序章

1章 基本:さっそく始める
IDLEのウィンドウを理解する
1行ずつコードを実行する
関数 + モジュール = 標準ライブラリ
データ構造を備えている
メソッドを呼び出すと結果が得られる
コードブロックをいつ実行するかを決める
if では他(else)に何が使えるの?
ブロックにブロックを埋め込むことができる
Python Shell に戻る
シェルで試す
オブジェクトのシーケンスを反復処理する
指定した回数だけ反復処理する
課題1の結果をコードに適用する
実行を一時停止する
Pythonで乱数整数を生成する
本格的なビジネスアプリケーションのコードを書く
インデントにイライラ?
関数について助けを求める
range を試してみる
1章のコード

2章 リストデータ:順序付きデータを扱う
数値、文字列、そしてオブジェクト
4つの組み込みデータ構造
順序なしデータ構造:辞書
重複を防ぐデータ構造:集合
リテラルでリストを作成する
コードが数行以上のときはエディタを使う
実行時にリストを「拡張」する
「in」でメンバーであるかを調べる
リストからオブジェクトを削除する
リストをオブジェクトで拡張する
リストにオブジェクトを挿入する
データ構造のコピー方法
リストの角かっこ表記の使い方
リストは開始、終了、刻みを理解する
リストの開始と終了
リストからスライスする
forループはリストを理解する
Marvinのスライスの詳細
リストが向かないとき
2章のコード(1/2)

3章 構造化データ:構造化データを扱う
辞書はキーと値のペアを格納する
コード内の辞書の見分け方
挿入順序は保証されない
[ ] を使った値の検索
実行時に辞書を使う
頻度を更新する
辞書を反復処理する
キーと値を反復処理する
「items」を使って辞書を反復処理する
辞書はどれくらい動的なのか?
実行時のKeyErrorを避ける
「in」を使ってメンバーかどうかを調べる
使う前には必ず初期化
「in」の代わりに「not in」を使う
setdefault メソッドを使う
効率的に集合を作成する
集合のメソッドを使う
タプルの存在理由
組み込みデータ構造を組み合わせる
複合データ構造のデータにアクセスする
3章のコード(1/2)

4章 コードの再利用:関数とモジュール
関数を使ってコードを再利用する
関数入門
関数を呼び出す
関数は引数を取る
値を1つ返す
複数の値を返す
組み込みデータ構造をおさらいする
汎用性のある便利な関数を作成する
別の関数を作成する(1/3)
引数のデフォルト値を指定する
位置指定とキーワード指定
関数についてわかったことを更新する
コマンドプロンプトからPythonを実行する
setup.py の作成
配布ファイルの作成
pipによるパッケージのインストール
値渡しのデモ
参照渡しのデモ
テストツールのインストール
PEP 8にどのくらい準拠しているか?
違反メッセージを理解する
4章のコード

5章 Webアプリケーションの構築:現実に目を向ける
Python:すでにわかっていること
Webアプリケーションに何をさせるか
Flaskをインストールしよう
Flaskはどのように機能するのか?
Flaskアプリケーションを初めて実行する
Flaskアプリケーションオブジェクトの作成
関数をURLでデコレートする
Webアプリケーションを動かす
Webに機能を公開する
HTMLフォームの作成
テンプレートはWebページに対応
Flaskからテンプレートをレンダリングする
WebアプリケーションのHTMLフォームを表示する
テンプレートコードを実行するための準備
HTTPステータスコードを理解する
ポストされたデータを処理する
編集/ 停止/ 開始/ テストのサイクルを改善する
FlaskでHTMLフォームデータにアクセスする
Webアプリケーションでリクエストデータを使う
結果をHTMLとして作成する
クラウドのための準備をする
5章のコード

6章 データの格納と操作:データをファイルに格納する
Webアプリケーションのデータを使って何かを行う
Pythonはオープン、処理、クローズをサポート
既存ファイルからデータを読み込む
さらに優れたオープン、処理、クローズ:with
Webアプリケーションを介してログを見る
ソースを見て生のデータを調べる
(データを)エスケープする
Webアプリケーションでログ全体を見る
特定のリクエスト属性をロギングする
1行の区切りデータをロギングする
生のデータから読みやすいデータへ変換する
HTMLで読みやすい出力にする
テンプレートに表示ロジックを埋め込む
Jinja2で読みやすい出力にする
Webアプリケーションコードの現在の状態
データに問い合わせる
6章のコード

7章 データベースの利用:PythonのDB-APIを使う
Webアプリケーションをデータベース対応にする
タスク1:MySQLサーバをインストールする
PythonのDB-APIとは
タスク2:Python用のMySQLデータベースドライバをインストールする
MySQL-Connector /Pythonのインストール
タスク3:Webアプリケーションのデータベースとテーブルを作成する
ログデータの構造を決める
テーブルがデータを格納できる状態になっているかを確認する s
タスク4:データベースとテーブルを扱うコードを作成する
データの格納は半分だけ
データベース用のコードを再利用する最善の方法は?
再利用したい部分を考える
インポートはどうなの?
このパターンには見覚えあり
悪い知らせは実はそれほど悪くない
7章のコード

8章 クラス入門:振る舞いと状態を抽象化する
with文を使う
オブジェクト指向入門
クラスからオブジェクトを生成する
オブジェクトは振る舞いを共有するが、状態は共有しない
CountFromByでさらに処理を行う
メソッドの呼び出し:詳細を理解する
クラスにメソッドを追加する
self の重要性
スコープを処理する
属性名の前に「self」を付ける
使う前に(属性)値を初期化する
__init__が属性を初期化する
__init__を使って属性を初期化する
CountFromByの表現を理解する
CountFromBy の表現方法を定義する
CountFromBy に適切なデフォルトを設定する
クラス:わかったこと
8章のコード

9章 コンテキストマネジメントプロトコル:with文を使う
Webアプリケーションコードを共有する最善の方法は?
メソッドを使ってコンテキストを管理する
コンテキストマネージャの動作はわかっています
新しいコンテキストマネージャクラスを作成する
データベース構成を使ってクラスを初期化する
__enter__で前処理を行う
__exit__で後処理を行う
Webアプリケーションコードを再考する(1/2)
「log_request」関数を思い出す
「log_request」関数を修正する
「view_the_log」関数を思い出す
変更するのはコードだけではない
「view_the_log」関数を修正する
データに関する質問に答える
9章のコード(1/2)

10章 関数デコレータ:関数を包む
(手元のマシンではなく)Webサーバでコードを実行する
Flaskのセッションはステータスを加える
辞書検索でステータスを取得する
セッションを使ってログインを管理する
ログアウトとステータスチェック用のコードを書く
関数に関数を渡す
渡した関数を呼び出す
引数のリストを受け取る
引数のリストを処理する
引数の辞書を受け取る
引数の辞書を処理する
あらゆる型の引数をいくつでも受け取る
関数デコレータを作成する
最終段階:引数を処理する
デコレータを利用する
/viewlog へのアクセス制限に戻る
10章のコード

11章 例外処理:うまくいかないときに行うこと
データベースは必ずしも利用できるわけではない
Web攻撃は深刻な悩み
入出力は(ときどき)遅い
関数呼び出しは失敗することがある
エラーが発生しやすいコードには常にtryを使う
tryは1つだが、exceptはいくつも追加できる
全捕捉例外ハンドラ
「sys」から例外について学ぶ
全捕捉例外ハンドラ(改訂版)
Webアプリケーションコードに戻る
例外を静かに処理する
その他のデータベースエラーを処理する
密結合のコードを避ける
DBcmモジュールの再検討
カスタム例外を作成する
「DBcm」では他にどのような問題が発生するの?
SQLErrorの処理は異なる
SQLError を投げる
簡単なおさらい:堅牢にする
待ち時間の対応? それは状況次第
11章のコード

11 3/4章 スレッド入門:待ち時間を処理する
待ち時間:何をすべき?
どのようにデータベースに問い合わせているの?
データベースのinsertとselectは違う
同時に複数のことを行う
がっかりしないでスレッドを使う
物事には順序がある:パニくらない
大丈夫、Flaskが利用できます
Webアプリケーションは堅牢になったのか?
11 3/4章のコード(1/2)

12章 高度なイテレーション:猛烈にループする
CSVデータをリストとして読み込む
CSVデータを辞書として読み込む
生データの中の不要な文字を除去してから分割
メソッド呼び出しをつなげるときには注意する
データを必要なフォーマットに変換する
リストの辞書に変換する
リスト中のパターンを探す
パターンを内包表記に変換する
内包表記を詳しく調べる
辞書内包表記を指定する
フィルタで内包表記を拡張する
複雑なところはPython流に対応する
集合内包表記の動作
「タプル内包表記」はなぜないの?
コードを囲む丸かっこ == ジェネレータ
リスト内包表記を使ってURLを処理する
ジェネレータを使ってURLを処理する
関数を定義する
ジェネレータ関数の威力
ジェネレータ関数をたどる(1/2)
最後の1つの質問
12章のコード
お別れのとき

付録A インストール:Pythonのインストール
WindowsにPython 3をインストールする
Windows のPython 3を確認する
Windows のPython 3に追加する
macOS(Mac OS X)にPython 3をインストールする
macOSのPython 3を確認して設定する
Linux にPython 3をインストールする

付録B PythonAnywhere:Webアプリケーションのデプロイ
ステップ0:準備を少し
ステップ1:サインアップ
ステップ2:クラウドへのファイルのアップロード
ステップ3:コードの取得とインストール
ステップ4:初期Webアプリケーションの作成(1/2)
ステップ5:Webアプリケーションの設定
ステップ6:クラウドベースのWebアプリケーションを試す

付録C 取り上げなかった上位10 個のトピック:いつでもさらに学ぶことがある
1. Python 2はどうなの?
2. 仮想プログラミング環境
3. オブジェクト指向の詳細
4. 文字列などのフォーマット
5. 整列
6. 標準ライブラリの詳細
7. 並列実行
8. tkinter を使ったGUI(およびturtleの楽しさ)
9. テストするまで終わらない
10. デバッグ、デバッグ、デバッグ

付録D 取り上げなかった上位10 個のプロジェクト:さらなるツール、ライブラリ、モジュール
1. >>>の以外の手段
2. IDLEの以外の手段
3. Jupyter Notebook:WebベースのIDE
4. データサイエンスを行う
5. Web開発
6. Webデータ
7. さらなるデータソース
8. プログラミングツール
9. Kivy:「これまでの最上級プロジェクト」に選んだもの
10. 代替となる実装

付録E 参加する:Pythonコミュニティ
BDFL(Benevolent Dictator for Life:慈悲深き終身独裁者)
寛容なコミュニティ:多様性の尊重
Pythonポッドキャスト
Zen of Python(Pythonの禅)
お勧めのPython書籍

索引