版元ドットコム

探せる、使える、本の情報

文芸 新書 社会一般 資格・試験 ビジネス スポーツ・健康 趣味・実用 ゲーム 芸能・タレント テレビ・映画化 芸術 哲学・宗教 歴史・地理 社会科学 教育 自然科学 医学 工業・工学 コンピュータ 語学・辞事典 学参 児童図書 ヤングアダルト 全集 文庫 コミック文庫 コミックス(欠番扱) コミックス(雑誌扱) コミックス(書籍) コミックス(廉価版) ムック 雑誌 増刊 別冊
図解! Pythonのツボとコツがゼッタイにわかる本 プログラミング実践編 立山秀利(著/文) - 秀和システム
..
【利用不可】

図解! Pythonのツボとコツがゼッタイにわかる本 プログラミング実践編 (ズカイ パイソンノツボトコツガゼッタイニワカルホン プログラミングジッセンヘン)

コンピュータ
このエントリーをはてなブックマークに追加
A5判
376ページ
定価 2,400円+税
ISBN
978-4-7980-6132-0   COPY
ISBN 13
9784798061320   COPY
ISBN 10h
4-7980-6132-8   COPY
ISBN 10
4798061328   COPY
出版者記号
7980   COPY
Cコード
C3055  
3:専門 0:単行本 55:電子通信
出版社在庫情報
不明
書店発売日
登録日
2021年1月7日
最終更新日
2021年3月23日
このエントリーをはてなブックマークに追加

紹介

Pythonは、AIのみならず日常の様々なシーンで使われ、すっかり身近なプログラミング言語となりました。本書は、『図解! Pythonのツボとコツがゼッタイにわかる本 “超”入門編』の続編として、入門者が次のステップとして学んでほしい「Pythonプログラミングのノウハウ」を体感しつつ、しっかり学べるプログラミング実践編です。入門から段階的にステップアップして、最後はOpenCVを使って簡単な顔認識プログラムを作りましょう!

目次

Chapter01 Pythonで一歩進んだ自動化をしよう
 01 より実用的なプログラムをPythonで作ろう!
  フクザツな処理を作る力が必要
 02 本書で前提とするPythonの知識
  これだけの基礎を押さえておこう! ただし暗記は不要
 03 本書で前提とするPythonの開発環境
  AnacondaとJupyter Notebookを利用
  ファイルの置き場所はカレントディレクトリ

Chapter02 フクザツな処理には、この仕組みが必要
 01 命令文を「上から並べて書く」の限界
  フクザツな処理は「上から並べて書く」以外も必要
 02 フクザツな処理に不可欠な「分かれる」
  「もし○○なら~」の仕組みは「分岐」で作る
 03 大量の処理は「繰り返す」を使うと格段にベンリ
  同じ処理のコードを書くのは1個だけ
 04 変数をもっと活用すると、 処理の幅がグンと広がる
  変数でデータを自在に扱いフクザツな処理を作る
 05 複数のデータをまとめて効率よく扱う
  「繰り返し」と組み合わると効果倍増!
 06 さまざまな仕組みをいかに組み合わせるか
  フクザツな処理は各仕組みの組み合わせで作る!
  Column 既定のブラウザーを確認・変更するには

Chapter03 フクザツな処理のプログラムを作るツボとコツ
 01 フクザツな処理も「段階的に作り上げる」がキホン
  自力でプログラムを作るために必要なノウハウ
  ツボは「誤りは必ずその場で修正」
 02 なぜ段階的に作り上げるノウハウが大切なの?
  誤りを自力で発見しやすくできる
  コレが極意! 誤りを探す範囲を絞り込む
  誤りが複数同時にあると…
 03 段階的な作成は命令文ごとの PDCAサイクルの積み重ね
  個々の命令文ごとにPDCAサイクルを回す
  1つの大きなPDCAサイクルを回すのはNG
 04 フクザツな処理を段階分けするには
  作りたいプログラムを小さな単位に分解して段階分け!
  3つの切り口を組み合わせて段階分け!
 05 こんな機能のプログラムをこれから作ろう!
  複数の画像をリサイズするサンプルで学ぼう
  「サンプル1」の機能の詳細
  「サンプル1」を準備しよう
 06 サンプルを3つの切り口で段階分けしよう
  【切り口1】一連の処理で段階分け
  【切り口2】“複数→単一”で段階分け
  【切り口3】“条件あり→なし”で段階分け
 07 処理に必要な変数や関数は 作りながら考えればOK
  「その都度調べる・考える」で問題なし
  Column 作りながら段階分けを随時見直そう

Chapter04 画像を1つリサイズする処理まで作ろう
 01 本章で作るプログラムの機能と作成の流れ
  容量に関係なく1つの画像をリサイズ
 02 画像の処理は定番の「Pillow」を使う
  「001.jpg」を使って①~③の処理を作る
  「Pillow」の概要とインポートのセオリー
 03 1つの画像を開く処理を作ろう
  PIL.Image.open関数で画像を開く
  開いた画像はオブジェクトとして得られる
  別のセルを使って動作確認
 04 画像をリサイズする処理を作ろう
  リサイズはこのメソッドひとつでOK!
  カッコが入れ子のかたちに注目
  リサイズのコードを追加しよう
  リサイズ処理の動作確認しよう
  リサイズ後の幅と高さも確認
 05 上書き保存する処理を作ろう
  画像の保存はsaveメソッドで
  001.jpgはバックアップしてから動作確認
  縦長の画像でも動作確認

Chapter05 容量が200KB以上ならリサイズする処理まで作ろう
 01 容量が200KB以上ならリサイズするには
  新たに必要な仕組みはこの2つ
 02 画像の容量を調べてみよう
  容量はos.path.getsize関数で取得
  os.path.getsize関数を別のセルで体験しよう
 03 分岐の条件式の記述に欠かせない「比較演算子」
  2つの値を比較した結果を返す演算子
 04 比較演算子を体験しよう!
  数値の比較を体験しよう
  「~以上」の比較を体験しよう
  変数を使った比較を体験しよう
 05 if文による分岐の基礎を学ぼう
  条件が成立する場合のみ処理を実行
 06 条件式が成立する/しないで異なる処理を実行
  不成立時の処理は「else」以下に
 07 if文を体験しよう
  if文の1つ目のパターンを体験
  インデントのあり/なしは大違い!
  if文の2つ目のパターンを体験
  Column if文3つ目のパターン
 08 200KB以上の写真だけ リサイズする処理を作ろう
  コードの大まかな構造を先に考えよう
  具体的なコードを記述しよう
  さっそく動作確認しよう
  200KB未満の画像でも動作確認
 09 分岐の処理の動作確認はこの2点に注意!
  条件が成立しない場合のチェックも忘れずに
  条件式に使うデータと得られるハズの結果を先に明確化
  Column import文を記述する順番
  Column 条件式だけを単独で動作確認
  Column 複数の条件で分岐する

Chapter06 複数の画像のリサイズは「繰り返し」と「リスト」がカギ
 01 複数の画像をリサイズしたい! どうすればいい?
  同じようなコードを並べても誤りではないけど……
 02 複数画像の処理は「繰り返し」を使えば効率的!
  ファイル名の一覧は関数でカンタンに得られる
 03 関数ひとつでファイル名の一覧を取得できる
  os.listdir関数の使い方のキホン
 04 os.listdir関数を体験しよう
  photoフォルダー内のファイル名を取得する
  ファイル名の一覧は「リスト」形式で得られる
  Column 「ユーザー定義関数」もある
 05 「リスト」のキホンを学ぼう
  複数の“箱”が並んだものがリスト
 06 リストのコードの書き方のキホン
  全体を「[」と「]」で囲み、要素を「,」で区切る
 07 リストは変数に入れて使うこともできる
  入れた変数の名前がリストの名前になる
 08 リストを体験しよう
  リストを作成し、変数に入れて出力
 09 リストの個々の要素を扱うには
  何番目の“箱”なのか、「インデックス」で指定
  インデックスはこう指定する
 10 リストのインデックスを体験しよう
  リストの各要素の値を取得・出力する
  要素数以上の値をインデックスに指定すると?
 11 photoフォルダー内のファイル名を 取得・出力しよう
  os.listdir関数で得られたリスト操作を体験
  photoフォルダー内のファイル名を取得・出力
 12 サンプル1にos.listdir関数と リストだけを使っても……
  繰り返しとの組み合わせでリストが活きる
  Column リストのベンリな小ワザ その1

Chapter07 繰り返しを活用してサンプル1を完成させよう
 01 リストとfor文の組み合わせのキホン
  繰り返される回数はリストの要素数
 02 リストとfor文の組み合わせを体験しよう
  「こんにちは」を繰り返し出力する
  リストの要素数を変更して試す
  for文もインデントのあり/なしに注意!
 03 for文の変数の動作を知ろう
  リストの要素が先頭から順に格納される
 04 for文の変数を体験しよう
  リストaryの要素を順に出力する
  リストの要素数を変更して試そう
 05 photoフォルダー内のファイル名を 順に出力してみよう
  os.listdir関数のおさらい
  for文を使ってファイル名を順に出力
  インデックス不要でリストの要素を扱える!
 06 すべての画像をリサイズするには、 フォルダー名の処理もカギ
  ファイル名の前にフォルダー名を連結する必要あり
 07 フォルダー名を連結してファイル名を 順に出力しよう
  体験のコードとパス区切り文字のおさらい
  os.path.join関数のおさらい
  フォルダー名とファイル名を連結して順に出力
 08 サンプル1ですべての画像を リサイズ可能にしよう
  サンプル1とここまで学んだ内容をおさらい
  まずはファイル名の一覧を取得する処理を追加
  とりあえずfor文で画像の数だけ繰り返すようにしよう
  各画像を順に処理できるよう変更して完成!
  意図通りリサイズできるかシッカリ動作確認
 09 完成までの段階的な作成の道のりを振り返ろう
  サンプル1を段階的に作成した過程
 10 初心者が分岐や繰り返しの処理を より確実に作成するノウハウ
  変更前のコードはコメント化して一時保管
 11 “練習”用のセルで先に体験するメリット
  なぜ、ぶっつけ本番はダメなのか?
  Column 繰り返しの処理の動作確認のコツ

Chapter08 サンプル1のコードをカイゼンしよう
 01 なぜコードをカイゼンした方がよいのか?
  今のままじゃ見づらく、追加・変更も大変!
 02 同じコードが何度も登場する状態を解消しよう
  全く同じ記述が3箇所にある!
  重複するコードを変数でまとめるのがツボ
  実際に変数でまとめよう!
 03 重複するコードをまとめると 処理の効率化もできる!
  重複する処理を何度も実行するのは非効率的
 04 コードの重複は他にも残っているけど……?
  1回実行すれば済む処理の重複を解消しよう
 05 重複を変数にまとめるコードは どこに挿入する?
  この処理よりはゼッタイに前でないとダメ
  ここより後でもうまく動かなくなる!
 06 文字列のコードの重複を解消しよう
  文字列の重複も変数でまとめる
  慣れない間は段階的にまとめるのが吉
 07 数値や文字列を直接記述している箇所は なぜカイゼンすべきか
  記述している箇所を探すだけでも一苦労
  同じ数値だが、意味や用途が異なると……
 08 数値や文字列を直接記述している箇所は 変数でカイゼン
  冒頭で変数に格納してまとめておく
 09 数値や文字列を直接記述している箇所を 実際に変数でカイゼンしよう
  ファイル容量の数値を変数に入れて置き換える
  幅と高さの数値も変数でカイゼンしよう
  これで変更がより効率的に行える!
  文字列はすでに解決済み!
  Column 変数MAX_FSIZEの数値の変更をよりわかりやすくするコツ
 10 変数名を大文字アルファベットで付けたワケ
  変わらない値なら大文字の変数名
 11 数値や文字列を変数に格納する コードの挿入位置
  特に繰り返しが絡む際は注意!
 12 タプルのキホンを改めて学ぼう
  タプルの一般的な書式と使い方
 13 タプルを変数に格納して使ってみよう
  幅と高さのタプルを変数に入れる
  引数や戻り値がタプルの関数やメソッド
 14 タプルとリストって何が違うの?
  タプルもリストみたいに要素を取得できる
  大きな違いは要素を変更できるかどうか
 15 指定した回数だけfor文で繰り返すには?
  range関数で回数を指定する
  変数には連番が自動で格納されていく
  Column 画像のパスの文字列はもっと前の段階でまとめてもOK?
  Column もうひとつの繰り返し while文
  Column データの“集まり”には「辞書」もある

Chapter09 ちょっとした顔認識のプログラムを作ろう
 01 シンプルな顔認識のプログラムにチャレンジ!
  ライブラリを使えばAIもカンタン
 02 顔認識のプログラムを作る準備をしよう
  定番ライブラリ「OpenCV」をインストール
  “顔認識用のファイル”をコピー
  顔認識に使う写真を用意
 03 OpenCVで顔を認識する大まかな流れ
  OpenCVの顔認識は4つの処理で
 04 認識した顔の場所と大きさを出力してみよう
  顔認識の【STEP1】はこの関数で
  長い関数名は補完機能で入力
 05 OpenCVで画像を開く処理を作ろう
  cv2.imread関数で画像を開く
 06 グレースケールに変換する処理を作ろう
  画像の変換はcv2.cvtColor関数で
 07 顔認識を実行して結果を出力
  detectMultiScaleメソッドで顔認識
 08 認識した顔のデータの意味と扱い方
  顔のデータはこの形式で得られる
  1人ぶんの顔のデータを取り出してみよう
  入れ子の内側の要素を取り出す
  内側の要素をすべて出力しよう
  print関数のちょっとしたワザ
 09 1人の顔に赤枠を引き、 別名で保存する処理を作ろう
  cv2.rectangle関数で赤枠を引く
  試しに任意の位置・大きさで赤枠を引いてみよう
  別名で保存はcv2.imwrite関数で
  赤枠を引き、別名で保存を体験
 10 認識した1人目の顔に赤枠を引こう
  1人目の顔の場所・大きさで座標を指定
  X/Y座標、幅、高さは変数に入れて指定
  Column リストのベンリな小ワザ その2
 11 X座標などを変数に代入するコードを 1行で済ます
  複数の変数に要素を一気に代入
  リストの分割代入を体験
  顔のデータを分割代入してみよう
  分割代入でサンプル2を書き換えよう
 12 認識した全員の顔に赤枠を引くには
  for文で個々の顔のデータを取り出す
  個々の顔のデータを取得・出力しよう
  X座標などを変数に代入して出力
  for文は分割代入で要素を取り出すことも
 13 サンプルで全員の顔に赤枠を引こう
  for文を追加し赤枠を繰り返し引く
  本来はカイゼンの余地はあるが……
 14 detectMultiScaleメソッドの引数scaleFactor
  うまく顔を認識できなければ、この値を調整
  detectMultiScaleメソッドのその他の引数
 15 サンプル2のプログラムはここもツボ
  変数imgと変数grayを使い分ける理由
  別名で保存する処理はfor以下じゃダメ?
  Column ユーザー定義関数 実装編

上記内容は本書刊行時のものです。