AI資格ドリル
資格を選ぶ↓

Python3エンジニア認定基礎試験 第10章 標準ライブラリめぐり 予想問題と解説

Python3エンジニア認定基礎試験第10章 標準ライブラリめぐり」の予想問題を6収録しています。各問を解説つきで掲載し、全問は演習画面で解けます。公式シラバスの範囲で作成しています。

この章の要点

OSとファイル操作・ワイルドカードとコマンドライン引数・文字列処理と数学・インターネットアクセスと日付時刻・データ圧縮と品質管理・電池付属(バッテリー同梱)などを扱う分野です。6(基礎6問)を収録しています。

  • OSとファイル操作
  • ワイルドカードとコマンドライン引数
  • 文字列処理と数学
  • インターネットアクセスと日付時刻
  • データ圧縮と品質管理
  • 電池付属(バッテリー同梱)

情報源と編集区分

公式範囲を確認し、問題数・難易度・確認点は当サイトが集計・編集。 一次情報確認日: 2026-09-18。

試験概要(公式)

確認しておきたいポイント

当サイトの作問時に観察した、取り違えやすい論点です(公式の統計ではありません)。

  • shutil.copyfile()とshutil.move()の混同。元ファイルを残すコピーにはcopyfile()を使い、移動するmove()や作業ディレクトリを扱うos.getcwd()・os.chdir()とは目的を分ける。

よくある質問

Q第10章 標準ライブラリめぐりは何問収録されていますか?

A

現在6問を収録しています。内訳は基礎6問です。

Q第10章 標準ライブラリめぐりの頻出論点は何ですか?

A

OSとファイル操作・ワイルドカードとコマンドライン引数・文字列処理と数学・インターネットアクセスと日付時刻・データ圧縮と品質管理・電池付属(バッテリー同梱)などが出題対象です(当サイト収録問題に基づく編集部集計)。

Q間違えた問題はどう復習すればいいですか?

A

誤答した選択肢のどこがずれていたかを解説で確認し、関連用語がある場合は用語集で定義に戻ってから再演習することをおすすめします。

1 ・ OSとファイル操作

data.db を archive.db へ別名でコピーし、コピー後も元ファイルを残したい。Python公式チュートリアルが日常的なファイル管理の高水準操作として示すものはどれか。

  • shutil.copyfile("data.db", "archive.db")
  • os.getcwd("data.db", "archive.db")
  • shutil.move("data.db", "archive.db")
  • os.chdir("data.db", "archive.db")
答えと解説を見る
shutil.copyfile("data.db", "archive.db")正解
解説

正解は「shutil.copyfile("data.db", "archive.db")」である。公式チュートリアルは、日常的なファイルやディレクトリの管理作業ではshutilモジュールが使いやすい高水準インターフェースを提供すると説明し、shutil.copyfile()でファイルをコピーする例を示している。shutil.move()はファイルを別の場所へ移動する操作なので、元ファイルを残すという要件に合わない。os.getcwd()は現在の作業ディレクトリを取得する関数であり、ファイルをコピーしない。os.chdir()は現在の作業ディレクトリを変更する関数であり、これもコピー処理ではない。関数名だけでなく、コピー後に元ファイルを残すという操作目的を照合して判断する。

https://docs.python.org/ja/3/tutorial/stdlib.html (Python公式チュートリアル 第10章 標準ライブラリめぐり、2026-09-18確認)

問題番号: py3b-041
問題番号 py3b-041 の誤りを報告する
2 ・ ワイルドカードとコマンドライン引数

ワイルドカードによるファイル検索やコマンドライン引数の扱いに関する次の説明のうち、Python公式チュートリアルの記述として正しいものはどれか。

  • globモジュールは、ディレクトリのワイルドカード検索からファイルのリストを生成する関数を提供する。
  • sysモジュールのargv属性は、コマンドラインオプションを解析した結果を辞書として格納する。
  • argparseモジュールは、正規表現によるパターンマッチングでコマンドライン引数の文字列を検証するモジュールである。
  • sys.stderrは、標準出力がリダイレクトされた場合には使用できなくなる出力先である。
答えと解説を見る
globモジュールは、ディレクトリのワイルドカード検索からファイルのリストを生成する関数を提供する。正解
解説

正解は「globモジュールは、ディレクトリのワイルドカード検索からファイルのリストを生成する関数を提供する。」である。公式チュートリアル10.2は、glob.glob('*.py')のようにワイルドカードを使ってディレクトリ内のファイル名の一覧を取得できると説明している。sysモジュールのargv属性は、コマンドラインに渡された引数をそのままリストとして格納するものであり、辞書としてオプションを解析するわけではない。argparseモジュールは、ArgumentParserでパーサーを作りadd_argument()で引数を定義しparse_args()で解析する仕組みであり、正規表現によるパターンマッチングを行うモジュールではない。sys.stderrは、標準出力がリダイレクトされた場合でも警告やエラーメッセージを読めるようにするための出力先であり、使用できなくなるという説明は正反対である。モジュールの役割を、関数名や属性名の字面だけでなく、何のために使うかという目的で照合する。

https://docs.python.org/ja/3/tutorial/stdlib.html (Python公式チュートリアル 第10章 標準ライブラリめぐり、2026-09-23確認)

問題番号: py3b-054
問題番号 py3b-054 の誤りを報告する
3 ・ 文字列処理と数学

次のPythonコードを実行した結果として、公式チュートリアルの記述に基づき正しいものはどれか。 import re result = re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest') print(result)

  • ['which', 'foot', 'fell', 'fastest']
  • ['foot', 'fell', 'fastest']
  • ['foot', 'or', 'fell', 'fastest']
  • 4
答えと解説を見る
['foot', 'fell', 'fastest']正解
解説

正解は「['foot', 'fell', 'fastest']」である。公式チュートリアル10.5は、reモジュールがより高度な文字列処理のための正規表現を提供すると説明し、re.findall()を使うとfで始まる単語にマッチする正規表現パターンで、与えられた文章から['foot', 'fell', 'fastest']を取り出せる例を示している。reモジュールにはre.sub()のように文字列を置換する関数もあるが、今回のコードはre.findall()でパターンに一致した文字列をすべて集めて返すものである。'which'は先頭がwであり、'or'は先頭がoであるため、いずれもfで始まる単語にマッチするこのパターンには合致せず、一覧に含まれない。また、re.findall()はマッチした文字列のリストを返す関数であり、マッチした数を表す整数を返す関数ではないため、結果を4のような数値に置き換えるのも誤りである。関数の戻り値の型と、パターンに合致する単語だけを機械的に数え上げて照合する。

https://docs.python.org/ja/3/tutorial/stdlib.html (Python公式チュートリアル 第10章 標準ライブラリめぐり、2026-09-23確認)

問題番号: py3b-055
問題番号 py3b-055 の誤りを報告する
4 ・ インターネットアクセスと日付時刻

インターネットアクセスや日付時刻の操作に関する次の説明のうち、Python公式チュートリアルの記述として誤っているものはどれか。

  • urllib.requestは、URLからデータを取得するためのモジュールであり、urlopen()でレスポンスを取得できる。
  • smtplibは、メールを送るためのモジュールであり、smtplib.SMTP('localhost')でサーバーへ接続してserver.sendmail()で送信する。
  • datetimeモジュールのdate.today()は、指定したタイムゾーンの標準時刻に変換した現在の日時をdatetime型で返す関数である。
  • date型どうしを減算すると、経過日数を表すtimedeltaオブジェクトが得られる。
答えと解説を見る
datetimeモジュールのdate.today()は、指定したタイムゾーンの標準時刻に変換した現在の日時をdatetime型で返す関数である。正解
解説

誤っているのは「datetimeモジュールのdate.today()は、指定したタイムゾーンの標準時刻に変換した現在の日時をdatetime型で返す関数である。」である。公式チュートリアル10.8は、dt.date.today()で今日の日付を取得する例を示しているだけであり、タイムゾーンを指定して変換した現在時刻をdatetime型で返すという説明はしていない。urllib.requestは、公式チュートリアル10.7が説明するとおりURLからデータを取得するためのモジュールで、urlopen()でレスポンスを取得し1行ずつ読める。smtplibも同10.7の説明どおり、smtplib.SMTP('localhost')でサーバーへ接続し、server.sendmail()で送信、server.quit()で終了するメールを送るためのモジュールである。また、birthdayのようなdate型どうしを減算すると経過日数を表すtimedeltaオブジェクトが得られるという説明も、10.8のage = now - birthdayの例と一致する。日付を取得する関数の説明に、タイムゾーン変換のような書かれていない機能を付け加えていないか照合する。

https://docs.python.org/ja/3/tutorial/stdlib.html (Python公式チュートリアル 第10章 標準ライブラリめぐり、2026-09-23確認)

問題番号: py3b-056
問題番号 py3b-056 の誤りを報告する
5 ・ データ圧縮と品質管理

データ圧縮や品質管理のためのモジュールに関する次の説明のうち、Python公式チュートリアルの記述として正しいものはどれか。

  • zlibモジュールのzlib.compress()は、データを暗号化し復号キーなしでは元に戻せなくする関数である。
  • timeitモジュールは、大きなコードブロックの処理時間のボトルネックを判定するための粒度の大きい計測ツールであり、profileモジュールより細かい処理を計測する。
  • doctestモジュールは、別ファイルにテストコードを書く形式のテストフレームワークで、TestCaseを継承したクラスにテストメソッドを記述する。
  • unittestモジュールは、unittest.TestCaseを継承したクラスにテストメソッドを書き、assertEqual()やassertRaises()で検証し、unittest.main()でコマンドラインから全テストを実行できるテストフレームワークである。
答えと解説を見る
unittestモジュールは、unittest.TestCaseを継承したクラスにテストメソッドを書き、assertEqual()やassertRaises()で検証し、unittest.main()でコマンドラインから全テストを実行できるテストフレームワークである。正解
解説

正解は「unittestモジュールは、unittest.TestCaseを継承したクラスにテストメソッドを書き、assertEqual()やassertRaises()で検証し、unittest.main()でコマンドラインから全テストを実行できるテストフレームワークである。」である。公式チュートリアル10.11は、unittestが別ファイルにテストコードを書く形式のテストフレームワークで、TestCaseを継承したクラスにテストメソッドを書き、assertEqual()やassertRaises()で検証し、unittest.main()でコマンドラインから全テストを実行すると説明している。zlib.compress()は、データを圧縮してzlib.decompress()で元に戻すための関数であり、暗号化して復号キーなしでは戻せなくする機能ではない。timeitは小さいコード片の実行時間を計測する簡便なツールであり、大きなコードブロックのボトルネックを判定する粒度の大きい計測はprofile・pstatsモジュールの役割であって説明が反対になっている。TestCaseを継承したクラスにテストメソッドを書く形式のテストフレームワークはunittestであり、doctestはdocstring内の実行結果を検査するツールなので、この説明はdoctestとunittestの役割を取り違えている。似た役割のモジュール名を、担当する処理の粒度や目的で区別する。

https://docs.python.org/ja/3/tutorial/stdlib.html (Python公式チュートリアル 第10章 標準ライブラリめぐり、2026-09-23確認)

問題番号: py3b-057
問題番号 py3b-057 の誤りを報告する
6 ・ 電池付属(バッテリー同梱)

データ形式とそれを扱う標準ライブラリのモジュールの組み合わせに関する次の説明のうち、Python公式チュートリアルの記述として正しいものはどれか。

  • csvモジュールは、データベースや表計算で使われるCSVファイルの読み書きをサポートする。
  • jsonモジュールは、SQLiteデータベースライブラリのラッパーであり、JSON形式のデータをデータベースファイルへ保存する。
  • xmlrpc.clientおよびxmlrpc.serverは、RFC 5322に基づく電子メールメッセージを管理するライブラリである。
  • gettext・locale・codecsパッケージは、XML文書の構文解析とJSON形式のデータのパースをサポートする。
答えと解説を見る
csvモジュールは、データベースや表計算で使われるCSVファイルの読み書きをサポートする。正解
解説

正解は「csvモジュールは、データベースや表計算で使われるCSVファイルの読み書きをサポートする。」である。公式チュートリアル10.12は、csvモジュールがデータベースや表計算で使われるCSVファイルの読み書きをサポートすると説明している。jsonモジュールは、一般的なデータ交換形式JSONのパースをサポートするモジュールであり、SQLiteデータベースライブラリのラッパーはsqlite3モジュールなので、この説明は両者の役割を取り違えている。xmlrpc.clientとxmlrpc.serverは遠隔手続き呼び出し(RPC)を簡単にするためのライブラリであり、RFC 5322に基づく電子メールメッセージを管理するのはemailパッケージの役割なので、これも説明が入れ替わっている。gettext・locale・codecsパッケージは国際化(i18n)に関する機能をサポートするものであり、XML文書の構文解析はxml.etree.ElementTreeなどの担当、JSON形式のパースはjsonモジュールの担当なので、この説明も役割を取り違えている。モジュール名が示す略称や由来だけでなく、公式チュートリアルが明記する担当データ形式で照合する。

https://docs.python.org/ja/3/tutorial/stdlib.html (Python公式チュートリアル 第10章 標準ライブラリめぐり、2026-09-23確認)

問題番号: py3b-058
問題番号 py3b-058 の誤りを報告する

執筆: ミナト編集部運営者情報を見る