徹底攻略 基本情報技術者の午後対策 Python編 第2版




【最新】[合格へ]基本情報技術者試験(FE)のおすすめ参考書・テキスト!も確認する

はじめに

「Pythonで実際に動かしてみることで,やっとAIがどのようなものが見えてきました!」

Pythonを用いたAI研修で受講生によく言われる言葉です。

プログラミングは,実際に動くものが作れるので,自分でいろいろ試してみることができます。そのため,紙の上で勉強するだけよりも,イメージがつかみやすいのです。

また逆に,「基本情報技術者試験の勉強をすることで,Pythonで出ていた意味不明の浮動小数点エラーの意味がわかりました」という声を聞くこともあります。プログラミングを実践しているだけだと,その背後にあるコンピュータの仕組みなどの基礎の学習がおろそかになりがちです。そのため,基本情報技術者試験の学習などを通じて,IT全般の基本を身に付けることも,技術者としてとても大切です。

情報処理技術者試験での基本情報技術者の位置付けは,「高度IT人材となるために必要な基本的知識・技能をもち,実践的な活用能力を身に付けた者」(試験の対象者像より)となっています。高度IT人材になる前に必要な基本的な知識や能力を身に付けることが目的です。基本情報技術者試験は午前試験と午後試験に分かれており,午前試験ではIT全般に関する知識を中心とした内容,午後試験ではプログラミングも含め,自分で選択した専門分野に関する少し深い内容が問われます。Pythonは,C,Java,アセンブラ言語,表計算と並んで,選択できるプログラミング言語として,令和2年度から新しく加わりました。

本書は,基本情報技術者試験のプログラミング言語にPythonを選択して合格するための教科書です。単にプログラミング言語としてPythonを学習するだけではなく,Pythonを通じてコンピュータの基礎理論やアルゴリズムも合わせて学習するように構成しています。また,わく☆すたAI(人工知能)が平成21年度からの基本情報技術者試験の出題傾向を徹底分析し,基本情報技術者試験のプログラミングで問われる技能を中心に構成しました。試験センターから発表されたシラバス改訂にも対応し,Pythonに関するサンプル問題の解説も行っています。

プログラミングを学習するときには,文法を暗記するよりも,実際に動かしてみながら試行錯誤する方が記憶に残りやすく実力も付いていきます。まずは気楽に読み進めながら。Pythonプログラムを動かして学習していきましょう。本書に登場するプログラムはすべてGitHubに公開していますので,ご自身の環境にコピーして動かすことができます。本書をお供にしながら,基本情報技術者試験の合格に向かって進んでいってください。

最後に,本書の発刊にあたり,企画・編集など本書の完成までに様々な分野で多大なるご尽力をいただきましたインプレスの皆様,ソキウス・ジャパンの皆様に感謝いたします。また,わくわくスタディワールドの齋藤健一様をはじめ,一緒に仕事をしてくださった皆様,「わく☆すたAIセミナー」「Python機械学習ディープラーニング研修」など様々な講座での受講生の皆様のおかげで,本書を完成させることができました。皆様,本当にありがとうございました。

令和3年3月
わくわくスタディワールド 瀬戸美月

株式会社わくわくスタディワールド 瀬戸美月 (著)
出版社 ‏ : ‎ インプレス; 第2版 (2021/5/20)、出典:出版社HP

本書の構成

本書は,解説を読み,節末の問題を解くことで知識が定着するように構成しています。側注には,理解を助けるヒントを盛り込んでいます。また,プログラムを実行しながらPythonの理解を深めることができますので,ぜひ,実際に動かしてみながら学習を進めてください。

プログラム中,色文字で示されたコメントでプログラムの理解を深めます。
アイコンで種別さいれた側注で,知識を補足します。
節末に設けられた問題を解くことで,知識が定着します。
重要用語や特に注意すべき部分は色文字で強調しています。
重要用語の次に覚えておきたい用語や,理解を助ける内容は太字で表記されています。
Pythonの対話モードをイメージした形式で,プログラムと実行結果を示しています。
各節の最後で重要ポイントを押さえます。

本書で使用している側注のアイコン

勉強のコツ 学習を進めるうえでの準備や,勉強方法などを紹介
用語 本文に登場した用語を詳しく解説
関連 本書における関連項目や,参照URLなどを記載
発展 上のレベルの学習につなげるために知っておくと有意義な知識を解説
参考 理解を助ける情報を紹介

Python問題の要点チェック

第1〜6章の各項目の末尾に要点として掲載している「POINT!」をここに一覧表示しました。新たなPython問題の対策にお役立てください。「POINT!」の掲載ページも併記していますので,学習したい項目は本文でしっかり理解してください。

第1章 Pythonの基本
1-1-1 Pythonことはじめ
四則演算は,そのまま書けば実行できる
割り算の商は/,商の整数部分は//,余りは%
1-1-2 Pythonの基本文法
代入は,「変数=値」で行う
Pythonでは字下げが必須,4文字のスペースが望ましい
1-2-1 基本データ型
数値型には,整数(int),浮動小数点数(float)がある
文字列は,シングルクォーテーション,ダブルクォーテーション,三重引用符のどれかで囲む
1-2-2 要素をもつデータ型
要素をもつデータ型にはリスト,タプル,辞書,集合の4種類と文字列型がある
リストは変更可能だが,タプルは変更不可能
1-2-3 リスト
sorted()はリストを変更せず,list.sort()は変更する。
リストの削除は,値指定はlist.remove(),添字ではdel
1-3-1 プログラムの基本3構造
基本3構造は,順次,選択,反復
Pythonでは,選択はif文,反復はwhile文,for文で表現
1-3-2 選択型のプログラム
「if 条件式:」のあとに,インデントを付けて処理を記述
elifは複数使用可能で,elseは省略可能
1-3-3 反復型のプログラム
「while 条件式:」のあとに,インデントして繰返し処理を記述
「for 要素 in イテレータ:」のあとに,インデントして繰返し処理を記述

第2章 Pythonの機能
2-1-1 ファイルからの入出力
ファイルの使用は,「fp=open(file,mode)」で行う
書き込みはfp.write(),読み込みはfp.read()
2-1-2 フォーマット
文字列にformat()メソッドを使用すると,様々な形式で出力できる
小数は浮動小数点の2進小数に変換されるため,誤差が出る
2-2-1 エラー,例外
エラーには,構文エラーと例外がある
例外は,try文で,except句以下で種類に応じた処理が記述できる
2-2-2 ユーザ定義例外
例外を明示的に発生させるにはraise文を使う
例外は,Exceptionクラスを継承することで,自分で作成できる
2-3-1 ライブラリの利用
Pythonのライブラリには,標準ライブラリと,pipでインストールするものがある
「import モジュール名」または「from モジュール名 import サブモジュール」でインポート
2-3-2 標準ライブラリ
標準ライブラリは,importするだけで利用できる
dir()関数を用いると,利用できる属性のリストが得られる
2-3-3 その他のライブラリ
外部ライブラリをインストールすることで,様々なことができる
セキュリティやWebスクレイピングなど,分野ごとにライブラリがある

第3章 関数の定義
3-1-1 関数
関数は,「def 関数名(引数名):」で定義する
デフォルト値やキーワード引数を利用して,引数の内容を設定できる
3-1-2 基本的な組み込み関数
bin(),oct(),hex()などの関数で,基数変換ができる
int(),floar(),str()などの関数で,データの型を変換できる
3-1-3 要素に処理を行う組み込み関数
ist(),tuple(),set(),dict()などの関数で,データの型を変換できる
map(),filter(),zip()などの関数で,イテレータの内容を加工できる
3-2-1 引数
任意引数は「*変数名」のかたちで宣言し,複数の引数の内容をタプルで格納
Pythonの関数での引数の渡し方の基本は,参照渡し
3-2-2 スコープ
関数の中でグローバル変数を使うには,global宣言が必要
リストのコピーには浅いコピーと深いコピーがあり,copyライブラリを使用する
3-2-3 ジェネレーター
ジェネレータ関数ではyield文を使って,要素の値を1つずつ返す
next()関数を使用するとイテレータの値を1つずつ取得できる
3-2-4 関数の様々な機能
「lambda 引数:戻り値」で,簡単な無名関数を作成できる
「@デコレータ名」を用いて,すでにある関数に新たな機能を追加できる

第4章 クラスとオブジェクト指向
4-1-1 オブジェクト指向
多相性を用いることで,同じメソッドで異なるクラスに異なる動作をさせる
集約(コンポジション)で,クラスの中に別のクラスをもつことができる
4-1-2 オブジェクト指向とUML
クラス図で汎化を表すには△,
集約を表すには◆を使用する
シーケンス図とコミュニケーション図は置換え可能
4-2-1 クラス
「class クラス名:」でクラスを定義。メソッドの引数にはselfを書く
スーパクラスのメソッドはサブクラスでオーバライドできる
4-2-2 クラスの応用
インスタンス変数はインスタンスのみ,クラス変数はクラス共通で用いられる
特殊メソッドを使うと,初期化や演算などの処理の内容がオーバライドできる

第5章 データ構造とアルゴリズム
5-1-1 データ構造とは
データ構造には,スタック,キューリスト,ハッシュなど様々なものがある
グラフの中で,ループをもたないデータ構造が木
5-1-2 データ構造の表現
リストやクラスを用いることで,様々なデータ構造を表現できる
グラフ構造を表現する方法には隣接行列と隣接リストがある
5-2-1 アルゴリズムとはココロアルゴリズムを学習することで,効率的なプログラムを書くことができる
プログラムの計算量は,O(オーダ)を用いて表現する
5-2-2 探索・整列のアルゴリズム
定番の探索アルゴリズムは,線形,2分ハッシュ表探索の3つ
効率的な整列アルゴリズムに,クイック,マージ,ヒープソートがある
5-2-3 再帰のアルゴリズム
再帰関数は,自分自身を関数内で呼び出す関数
クイックソートやマージソートは,部分列を作って再帰処理を行う
5-2-4 グラフのアルゴリズム
幅優先探索では,キューを使って順番を保存する
深さ優先探索では,再帰を使用して根から葉まで探索する
5-2-5 その他のアルゴリズム
文字列探索は,BM法を使って探索回数を減らすことができる
アルゴリズムには様々なものがあり,様々な問題解決方法がある

第6章 データサイエンスとAI
6-1-1 データサイエンスとは
正規分布では,平均を中心としたグラフになり,±1δに約68%が含まれる
ビッグデータの活用は,見える化だけではなく,自動制御に発展
6-1-2 データ分析用ライブラリ
Pythonで数値演算を行う時によく使われるNumPy
Matplotlibでデータを可視化することができる
6-2-1 A1とは
機械学習には,教師あり学習と教師なし学習に加え,強化学習がある
ディープラーニングは教師あり学習の一種で,CNNは画像解析などで活用
6-2-2 AI関連のライブラリ
機械学習を実現するライブラリにscikit-learnがある
ディープラーニングを実現するライブラリにTensorFlowがある

株式会社わくわくスタディワールド 瀬戸美月 (著)
出版社 ‏ : ‎ インプレス; 第2版 (2021/5/20)、出典:出版社HP

目次

はじめに
本書の構成
Python問題の要点チェック
基本情報技術者試験とPython
Pythonの概要

第1章 Pythonの基本
1-1 Pythonとは
1-1-1 Pythonことはじめ
1-1-2 Pythonの基本文法
1-1-3 演習問題
1-2 データ型
1-2-1 基本データ型
1-2-2 要素をもつデータ型
1-2-3 リスト
1-2-4 演習問題
1-3 プログラムの構造
1-3-1 プログラムの基本3構造
1-3-2 選択型のプログラム
1-3-3 反復型のプログラム
【コラム】繰り返しは人間には難しい
1-3-4 演習問題

第2章 Pythonの機能
2-1 入出力
2-1-1 ファイルからの入出力
2-1-2 フォーマット
【コラム】浮動小数点とPython
2-1-3 演習問題
2-2 エラーと例外
2-2-1 エラー,例外
2-2-2 ユーザ定義例外
2-2-3 演習問題
2-3 ライブラリ
2-3-1 ライブラリの利用
2-3-2 標準ライブラリ
2-3-3 その他のライブラリ
【コラム】データサイエンス用プラットフォーム「Anaconda」
2-3-4 演習問題

第3章 関数の定義
3-1関数
3-1-1関数
3-1-2基本的な組み込み関数
3-1-3要素に処理を行う組み込み関数
【コラム】Pythonの関数は難しい
3-1-4演習問題
3-2関数の応用
3-2-1引数
3-2-2スコープ
3-2-3ジェネレータ
3-2-4関数の様々な機能
3-2-5演習問題
3-3関数問題
3-3-1関数問題の演習

第4章 クラスとオブジェクト指向
4-1 オブジェクト指向
4-1-1 オブジェクト指向
4-1-2 オブジェクト指向とUML
4-1-3 演習問題
4-2 クラス
4-2-1 クラス
【コラム】Pythonのオブジェクト指向の特徴
4-2-2 クラスの応用
4-2-3 演習問題
4-3 オブジェクト指向問題
4-3-1 オブジェクト指向問題の演習

第5章 データ構造とアルゴリズム
5-1 データ構造
5-1-1 データ構造とは
5-1-2 データ構造の表現
5-1-3 演習問題
5-2 アルゴリズム
5-2-1 アルゴリズムとは
5-2-2 探索・整列のアルゴリズム
5-2-3 再帰のアルゴリズム
5-2-4 グラフのアルゴリズム
5-2-5 その他のアルゴリズム
【コラム】アルゴリズム学習のポイント
5-2-6 演習問題
5-3 アルゴリズム問題
5-3-1 アルゴリズム問題の演習

第6章 データサイエンスとAI
6-1 データサイエンス
6-1-1 データサイエンスとは
6-1-2 データ分析用ライブラリ
6-1-3 演習問題
6-2 AI関連技術
6-2-1 AIとは
6-2-2 AI関連のライブラリ
【コラム】AIとPython
6-2-3 演習問題
6-3 データサイエンス問題
6-3-1 データサイエンス問題の演習

第7章 Python午後問題演習
7-1 予想問題の演習
7-1-1 予想問題1
7-1-2 予想問題2
7-1-3 予想問題3
7-1-4 予想問題4
7-1-5 予想問題5
7-2 サンプル問題の演習
7-2-1 サンプル問題
【コラム】さらなる学習に向けて

付録 Python環境の準備
索引

株式会社わくわくスタディワールド 瀬戸美月 (著)
出版社 ‏ : ‎ インプレス; 第2版 (2021/5/20)、出典:出版社HP