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

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

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

この章の要点

10進浮動小数点演算・文字列テンプレート化・マルチスレッディング・ログ記録・リストを操作するためのツールなどを扱う分野です。全5問(基礎2問・標準3問)を収録しています。

  • 10進浮動小数点演算
  • 文字列テンプレート化
  • マルチスレッディング
  • ログ記録
  • リストを操作するためのツール

情報源と編集区分

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

試験概要(公式)

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

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

  • Decimalへfloatを渡してから10進表記の正確さを期待すること。0.1のような値はDecimal("0.1")のように文字列から作り、2進浮動小数点の近似値を先に持ち込まない。

よくある質問

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

A

現在5問を収録しています。内訳は基礎2問・標準3問です。

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

A

10進浮動小数点演算・文字列テンプレート化・マルチスレッディング・ログ記録・リストを操作するためのツールなどが出題対象です(当サイト収録問題に基づく編集部集計)。

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

A

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

第1問 ・ 10進浮動小数点演算

0.1のような10進表記の値を正確に扱い、精度や丸めを制御したい金融計算で、公式チュートリアルの説明に最も合う方法はどれか。

  • アfloat("0.1")だけを使えば、10進表記の0.1は必ず誤差なく格納される
  • イdecimalモジュールを読み込み、Decimal("0.1")のように文字列から値を作る
  • ウdecimalモジュールも2進浮動小数点だけを扱うため、floatと表現上の違いはない
  • エDecimalでは精度や丸めを制御できないため、金融計算にはfloatだけを使う
答えと解説を見る
イdecimalモジュールを読み込み、Decimal("0.1")のように文字列から値を作る正解
解説

正解は「decimalモジュールを読み込み、Decimal("0.1")のように文字列から値を作る」である。公式チュートリアルは、decimalモジュールが10進浮動小数点算術のためのDecimalデータ型を提供し、2進浮動小数点では正確に表現できない10進数を正確に表現できると説明している。この性質に加え、精度と丸めを制御できるため、会計処理や金融アプリケーションに適する。文字列からDecimalを作れば、先にfloatへ変換した際の2進表現を持ち込まずに10進表記の値を指定できる。floatの0.1は2進浮動小数点で正確に表現できないため、floatだけを使う方法は要件に合わない。decimalも2進表現だけを扱うという説明や、Decimalでは精度と丸めを制御できないという説明は、いずれも公式チュートリアルが挙げるDecimalの特徴と逆である。

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

問題番号: py3b-045
問題番号 py3b-045 の誤りを報告する
第2問 ・ 文字列テンプレート化

エンドユーザーが編集可能な出力テンプレートで、プレースホルダに対応する値が見つからない場合でもエラーで処理を止めずプレースホルダをそのまま残したい。公式チュートリアルのstring.Templateクラスの説明に合う方法はどれか。

  • アsubstitute()を使う。値が見つからない場合は自動的に空文字列に置き換えられる
  • イsubstitute()を使う。値が見つからない場合は自動的にNoneへ置き換えられる
  • ウsafe_substitute()を使う。値が見つからない場合はプレースホルダがそのまま出力に残る
  • エTemplateクラスにはプレースホルダの欠落を許容するメソッドはなく、事前に全ての値を用意する必要がある
答えと解説を見る
ウsafe_substitute()を使う。値が見つからない場合はプレースホルダがそのまま出力に残る正解
解説

正解は「safe_substitute()を使う。値が見つからない場合はプレースホルダがそのまま出力に残る」である。公式チュートリアルはsubstitute()がプレースホルダの値が置き換え用マッピングに見つからない場合KeyErrorを送出し、safe_substitute()メソッドを使うと値が見つからなくてもプレースホルダがそのまま出力に残ると説明している。エラーで止めずに処理を継続したい今回の要件には、KeyErrorを送出しないsafe_substitute()が合う。substitute()とsafe_substitute()はどちらもプレースホルダを実際の値へ置き換えるメソッドだが、値が欠けたときの挙動だけが異なる点を区別して覚える必要がある。

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

問題番号: py3b-067
問題番号 py3b-067 の誤りを報告する
第3問 ・ マルチスレッディング

複数のスレッドから同じリソースへアクセスする処理を、設計しやすく可読性・信頼性の高い形で調整したい。公式チュートリアルのthreadingモジュールの説明に合う方法はどれか。

  • アすべてのスレッドが直接同じリソースへ同時にアクセスするコードを書き、調整は行わない
  • イthreadingモジュールを使わず、順序的な依存関係にない複数のタスクもすべて直列に実行する
  • ウjoin()を呼ばずにstart()だけを呼び、スレッドの終了を待たずにリソースへアクセスする
  • エ他の複数のスレッドからのリクエストを一つのスレッドへ送り込み、一つのリソースへのアクセスをできるだけ一つのスレッドに集中させるためにqueueモジュールを使う
答えと解説を見る
エ他の複数のスレッドからのリクエストを一つのスレッドへ送り込み、一つのリソースへのアクセスをできるだけ一つのスレッドに集中させるためにqueueモジュールを使う正解
解説

正解は「他の複数のスレッドからのリクエストを一つのスレッドへ送り込み、一つのリソースへのアクセスをできるだけ一つのスレッドに集中させるためにqueueモジュールを使う」である。公式チュートリアルは、threadingモジュールが順序的な依存関係にない複数のタスクを分割する高水準のテクニックだと説明したうえで、タスク間の調整については他の複数のスレッドからのリクエストを一つのスレッドに送り込み一つのリソースへのアクセスをできるだけ一つのスレッドに集中させるほうがよく、そのためにはqueueモジュールを使うのが最も良い方法だと説明している。複数スレッドが同じリソースへ直接アクセスする設計や、スレッドの終了を待たずに処理を進める設計は、この調整方針とは異なる。

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

問題番号: py3b-068
問題番号 py3b-068 の誤りを報告する
第4問 ・ ログ記録

アプリケーションのログメッセージを、コードを変更せずに出力先や書式を切り替えられるようにしたい。公式チュートリアルのloggingモジュールの説明に合うものはどれか。

  • アloggingモジュールはログメッセージをファイルにしか送信できず、標準エラー出力への送信はできない
  • イログ出力の設定はPythonコードで直接記述する方法しか用意されておらず、設定ファイルによる変更はできない
  • ウloggingモジュールは柔軟性のあるログ記録システムを提供し、Pythonコードでの直接設定とユーザが編集可能な設定ファイルによる設定の両方に対応する
  • エログの重要度を区別する仕組みはなく、すべてのログメッセージは同じ扱いで出力される
答えと解説を見る
ウloggingモジュールは柔軟性のあるログ記録システムを提供し、Pythonコードでの直接設定とユーザが編集可能な設定ファイルによる設定の両方に対応する正解
解説

正解は「loggingモジュールは柔軟性のあるログ記録システムを提供し、Pythonコードでの直接設定とユーザが編集可能な設定ファイルによる設定の両方に対応する」である。公式チュートリアルはloggingモジュールが数多くの機能をそなえた柔軟性のあるログ記録システムを提供し、ログメッセージをファイルやsys.stderrへ送信できると説明し、さらにログ出力の設定をPythonコードで直接設定する方法とユーザが編集可能な設定ファイルで設定する方法の両方があると説明している。

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

問題番号: py3b-069
問題番号 py3b-069 の誤りを報告する
第5問 ・ リストを操作するためのツール

ソート済みのリストへ要素を追加した後も並び順を保ちたい場合、公式チュートリアルの説明に合うモジュール・関数の組み合わせはどれか。

  • アbisectモジュールのbisect.insort()を使う。ソート済みリストへソート順序を保ったまま挿入できる
  • イarrayモジュールのarray.append()を使う。同種データのみ格納できるため自動的にソート順が保たれる
  • ウheapqモジュールを使い、リストの要素を毎回ソートし直してから追加する
  • エlistのappend()メソッドだけを使う。追加後は常に自動的にソートされる
答えと解説を見る
アbisectモジュールのbisect.insort()を使う。ソート済みリストへソート順序を保ったまま挿入できる正解
解説

正解は「bisectモジュールのbisect.insort()を使う。ソート済みリストへソート順序を保ったまま挿入できる」である。公式チュートリアルはbisectモジュールがソート済みのリストを操作するための関数を備え、bisect.insort()を使うとソート順序を保ったまま挿入できると説明している。arrayモジュールは同種データをコンパクトに格納するためのもので並び順の維持を目的とした機能ではなく、heapqは最小値へ素早くアクセスするためのヒープ構造を提供するものであり、いずれも今回の要件には合わない。

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

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

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