改訂新版 最短距離でゼロからしっかり学ぶ Python 入門 実践編
〜ゲーム開発・データ可視化・Web開発

[表紙]改訂新版 最短距離でゼロからしっかり学ぶ Python 入門 実践編 〜ゲーム開発・データ可視化・Web開発

紙版発売

B5変形判/360ページ

定価3,850円(本体3,500円+税10%)

ISBN 978-4-297-14526-2

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

世界で150万部突破の「PYTHON CRASH COURSE」の翻訳版,「最短距離でゼロからしっかり学ぶ Python入門 実践編」の改訂新版です。Python 3.7から3.11へのアップデート,ライブラリのアップデートのほか,書籍で使用するエディターをSublime TextからVisual Studio Codeに変更します。実践編では,インベーダーゲーム開発,データ可視化,Webアプリケーション開発の各テーマについて,手を動かしながら学ぶ形でわかりやすく解説します。

こんな方におすすめ

  • Pythonをゼロから短期間で習得したい人
  • プログラマーの目線で,コードの書き方を学びたい人
  • プログラミングのしっかりした知識をはじめから身につけたい人

目次

プロジェクト1 エイリアン侵略ゲーム

第1章 弾を発射する宇宙船

  • プロジェクトの計画を立てる
  • Pygameをインストールする
  • ゲームのプロジェクトを開始する
    • Pygameの画面を作成してユーザーの入力を受け付ける
    • フレームレートを制御する
    • 背景色を設定する
    • Settingsクラスを作成する
  • 宇宙船の画像を追加する
    • Shipクラスを作成する
    • 宇宙船を画面に描画する
  • リファクタリング:_check_events()と_update_screen()メソッド
    • _check_events()メソッド
    • _update_screen()メソッド
  • 宇宙船を操縦する
    • キー入力に反応する
    • 連続した移動に対応する
    • 左右に移動する
    • 宇宙船のスピードを調整する
    • _check_events()をリファクタリングする
    • Qが押されたら終了する
    • ゲームをフルスクリーンモードで実行する
  • 振り返り
    • alien_invasion.py
    • settings.py
    • ship.py
  • 弾を発射する
    • 弾の設定を追加する
    • Bulletクラスを作成する
    • 複数の弾をグループに保存する
    • 弾を発射する
    • 古い弾を削除する
    • 弾の数を制限する
    • _update_bullets()メソッドを作成する
  • まとめ

第2章 エイリアン!

  • プロジェクトをレビューする
  • 最初のエイリアンを生成する
    • Alienクラスを作成する
    • Alienのインスタンスを生成する
  • エイリアンの艦隊を編成する
    • 1列のエイリアンを作成する
    • _create_fleet()をリファクタリングする
    • 複数の列を追加する
  • 艦隊を動かす
    • エイリアンを右に移動する
    • 艦隊の移動する方向の設定を追加する
    • エイリアンがどちらかの端に到達したかを確認する
    • 艦隊を下に移動して進行方向を変える
  • エイリアンを撃つ
    • 弾が衝突したことを検出する
    • テスト用に大きな弾を作成する
    • 艦隊を再度出現させる
    • 弾のスピードを上げる
    • _update_bullets()をリファクタリングする
  • ゲームを終了する
    • エイリアンと宇宙船の衝突を検出する
    • エイリアンと宇宙船の衝突に対応する
    • エイリアンが画面の一番下に到達する
    • ゲームオーバー!
    • ゲームの状態によって実行される箇所を明確にする
  • まとめ

第3章 得点を表示する

  • Playボタンを追加する
    • Buttonクラスを作成する
    • 画面にボタンを描画する
    • ゲームを開始する
  • ゲームをリセットする
    • ゲーム開始ボタンを無効化する
    • マウスカーソルを隠す
  • レベルアップする
    • 速度の設定を変更する
    • 速度をリセットする
  • 得点を表示する
    • 得点を画面に表示する
    • スコアボードを作成する
    • エイリアンを撃ち落とすと得点を更新する
    • 得点をリセットする
    • 撃ち落としたすべての点数を確認する
    • エイリアンの点数を増やす
    • 得点を丸める
    • ハイスコア
    • レベルを表示する
    • 宇宙船の数を表示する
  • まとめ

プロジェクト2 データの可視化

第4章 データを生成する

  • Matplotlibをインストールする
  • 簡単な折れ線グラフを描画する
    • ラベルと線の太さを変更する
    • グラフを修正する
    • 組み込みのスタイルを使用する
    • scatter()で複数の点にスタイルを指定して描画する
    • scatter()で連続した点を描画する
    • データを自動的に計算する
    • 軸ラベルをカスタマイズする
    • 色をカスタマイズする
    • カラーマップを使用する
    • グラフを自動的に保存する
  • ランダムウォーク
    • RandomWalkクラスを作成する
    • 方向を選択する
    • ランダムウォークを描画する
    • 複数のランダムウォークを生成する
    • ランダムウォークにスタイルを設定する
  • Plotlyでサイコロを転がす
    • Plotlyをインストールする
    • Dieクラスを作成する
    • サイコロを転がす
    • 結果を分析する
    • ヒストグラムを作成する
    • グラフをカスタマイズする
    • 2個のサイコロを転がす
    • さらにカスタマイズする
    • 異なるサイズのサイコロを転がす
    • グラフを保存する
  • まとめ

第5章 データをダウンロードする

  • CSVファイル形式
    • CSVファイルのヘッダーを解析する
    • ヘッダーとその位置を出力する
    • データを抽出して読み込む
    • 気温のグラフにデータを描画する
    • datetimeモジュール
    • 日付を描画する
    • 長い時間の範囲を描画する
    • 2番目のデータを描画する
    • グラフ内の領域に陰影をつける
    • エラーをチェックする
    • データをダウンロードする
  • 地球全体のデータセットを地図に描画する(GeoJSON 形式)
    • 地震データをダウンロードする
    • GeoJSONデータを調査する
    • すべての地震のリストを作成する
    • マグニチュードを取り出す
    • 位置データを取り出す
    • 世界地図を構築する
    • マグニチュードを表現する
    • マーカーの色をカスタマイズする
    • 他のカラースケール
    • ホバーテキストを追加する
  • まとめ

第6章 APIを取り扱う

  • APIを使う
    • GitとGitHub
    • API呼び出しを使用してデータをリクエストする
    • Requestsをインストールする
    • APIのレスポンスを処理する
    • レスポンスの辞書を処理する
    • 上位のリポジトリを要約する
    • API利用頻度の制限を監視する
  • Plotlyを使ってリポジトリを可視化する
    • グラフにスタイルを設定する
    • カスタマイズしたツールチップを追加する
    • クリック可能なリンクを追加する
    • マーカーの色をカスタマイズする
    • PlotlyおよびGitHub APIについてさらに詳しく
  • Hacker NewsのAPI
  • まとめ

プロジェクト3 Webアプリケーション

第7章 Djangoをはじめる

  • プロジェクトの準備をする
    • 仕様書を作成する
    • 仮想環境を作成する
    • 仮想環境を有効化する
    • Djangoをインストールする
    • Djangoプロジェクトを作成する
    • データベースを作成する
    • プロジェクトを表示する
  • アプリケーションを開始する
    • モデルを定義する
    • モデルを有効化する
    • Django管理サイト
    • Entryモデルを定義する
    • Entryモデルをマイグレーションする
    • 管理サイトにEntryモデルを登録する
    • Djangoシェル
  • ページを作成する:学習ノートのホームページ
    • URLを対応付ける
    • ビューを作成する
    • テンプレートを作成する
  • 追加のページを作成する
    • テンプレートの継承
    • トピック一覧ページ
    • 個別トピックのページ
  • まとめ

第8章 ユーザーアカウント

  • ユーザーがデータを入力できるようにする
    • 新しいトピックを追加する
    • 新しい記事を追加する
    • 記事を編集する
  • ユーザーアカウントを設定する
    • accountsアプリケーション
    • ログインページ
    • ログアウトする
    • ユーザー登録ページ
  • ユーザーが自分のデータを持てるようにする
    • @login_requiredを使用してアクセスを制限する
    • データを特定のユーザーと関連付ける
    • トピックへのアクセスを適切なユーザーに制限する
    • ユーザーのトピックを保護する
    • edit_entryページを保護する
    • 新しいトピックを現在のユーザーと関連付ける
  • まとめ

第9章 アプリケーションのスタイル設定とデプロイ

  • 「学習ノート」にスタイルを設定する
    • django-bootstrap5アプリケーション
    • 「学習ノート」のスタイルにBootstrapを使用する
    • base.htmlを変更する
    • Jumbotronを使用してホームページにスタイルを設定する
    • ログインページにスタイルを設定する
    • トピック一覧ページにスタイルを設定する
    • 個別トピックページの各記事にスタイルを設定する
  • 「学習ノート」をデプロイする
    • Platform.shのアカウントを作成する
    • Platform.sh CLIをインストールする
    • platformshconfig をインストールする
    • requirements.txtファイルを作成する
    • デプロイに必要な追加の要件
    • 設定ファイルを追加する
    • Platform.sh用にsettings.pyを変更する
    • プロジェクトファイルを追跡するためにGitを使う
    • Platform.shにプロジェクトを作成する
    • Platform.shにプッシュする
    • 公開されたプロジェクトを確認する
    • Platform.shのデプロイを改良する
    • 公開中のプロジェクトを保護する
    • 変更をコミットしてプッシュする
    • エラーページをカスタマイズする
    • 開発を継続する
    • Platform.shプロジェクトを削除する
  • まとめ

付録

  • A バージョン管理にGitを使う
    • Gitをインストールする
    • プロジェクトを作成する
    • ファイルを無視する
    • リポジトリを初期化する
    • 状態を確認する
    • リポジトリにファイルを追加する
    • コミットを作成する
    • ログを確認する
    • 2番目のコミット
    • 変更を破棄する
    • 過去のコミットをチェックアウトする
    • リポジトリを削除する
  • B デプロイのトラブルシューティング
    • デプロイを理解する
    • 基本的なトラブルシューティング
    • OS特有のトラブルシューティング
    • その他のデプロイ方法
  • C Matplotlibに日本語フォントを設定する
    • 日本語はデフォルト設定では文字化けする
    • 設定ファイルにフォントを設定する
    • rcParamsを使用してフォントを設定する

著者プロフィール

Eric Matthes(えりっくまってす)

25年間高校の数学と科学の教師であり,初級のPythonクラスで教える中でよりよいカリキュラムの道を探していた。現在はフルタイムの執筆者兼プログラマーとして,いくつかのオープンソースプロジェクトに参加している。彼のプロジェクトのゴールは広範囲にわたり,山岳地帯の土砂崩れを予測するものからDjangoプロジェクトのデプロイをシンプルにするものまである。執筆やプログラミングをしていないときは,山登りを楽しんだり家族との時間を過ごしている。


鈴木たかのり(すずきたかのり)

一般社団法人PyCon JP Association代表理事,株式会社ビープラウド 取締役/Python Climber。

部内のサイトを作るためにZope/Ploneと出会い,その後必要にかられてPythonを使いはじめる。PyCon JP 2024共同座長。他の主な活動はPythonボルダリング部(#kabepy)部長,Python mini Hack-a-thon(#pyhack)主催,Python Boot Camp(#pycamp)講師など。

各国PyConやPython Boot Campで訪れた土地で,現地のクラフトビールを飲むことが楽しみ。 フェレットとビールとレゴが好き。趣味は吹奏楽(トランペット)とボルダリング。


安田善一郎(やすだぜんいちろう)

株式会社Surface&Architecture執行役員,株式会社ニューロマジック監査役,シエルセラン合同会社代表。

日本IBMを経て(株)ニューロマジックを設立。その後フリーランスとなりPythonベースのPloneをはじめさまざまなCMSでサイト構築(企画・IA・ディレクション)を手がける。現在は,デザインプロジェクトのマネジメントをはじめ各社で複数の業務に携わっている。