Python3エンジニア認定基礎試験 第7章 入出力 予想問題と解説
Python3エンジニア認定基礎試験「第7章 入出力」の予想問題を5問収録しています。各問を解説つきで掲載し、全問は演習画面で解けます。公式シラバスの範囲で作成しています。
この章の要点
ファイルの読み書き・フォーマット済み文字列リテラル(f-string)・str.format()メソッドの引数指定・ファイルオブジェクトのメソッド(f.readline())・jsonモジュールによるデータの保存などを扱う分野です。全5問(基礎4問・標準1問)を収録しています。
- ファイルの読み書き
- フォーマット済み文字列リテラル(f-string)
- str.format()メソッドの引数指定
- ファイルオブジェクトのメソッド(f.readline())
- jsonモジュールによるデータの保存
情報源と編集区分
公式範囲を確認し、問題数・難易度・確認点は当サイトが集計・編集。 一次情報確認日: 2026-09-18。
試験概要(公式)確認しておきたいポイント
当サイトの作問時に観察した、取り違えやすい論点です(公式の統計ではありません)。
- ファイルを開くモードと閉じる時点の取り違え。読み取りにはr、上書きにはwを使い、with文なら処理中に例外が起きてもブロック終了時にファイルが閉じられる。
よくある質問
Q第7章 入出力は何問収録されていますか?
現在5問を収録しています。内訳は基礎4問・標準1問です。
Q第7章 入出力の頻出論点は何ですか?
ファイルの読み書き・フォーマット済み文字列リテラル(f-string)・str.format()メソッドの引数指定・ファイルオブジェクトのメソッド(f.readline())・jsonモジュールによるデータの保存などが出題対象です(当サイト収録問題に基づく編集部集計)。
Q間違えた問題はどう復習すればいいですか?
誤答した選択肢のどこがずれていたかを解説で確認し、関連用語がある場合は用語集で定義に戻ってから再演習することをおすすめします。
UTF-8のテキストファイルdata.txtを読み、処理中に例外が起きてもファイルを確実に閉じたい。公式チュートリアルの推奨に合う書き方はどれか。
答えと解説を見る
正解は「with open("data.txt", "r", encoding="utf-8") as f: のブロック内で読み取る」である。公式チュートリアルは、ファイルオブジェクトを扱うときにwithキーワードを使うことを推奨している。withブロックを抜ける際には、途中で例外が発生した場合でもファイルが正しく閉じられるため、同等のtry-finallyを書くより短く安全に後始末を表現できる。open()したままclose()を省略する書き方は、書き込みが完全にディスクへ反映されないなどの問題につながり得る。読み取り前にclose()を呼べば、その後そのファイルオブジェクトから読み取れない。また、wモードはファイルを書き込み用に開き、既存の同名ファイルを切り詰める。今回はUTF-8のテキストを読むため、読み出し用のrモードとencodingの組み合わせが適切である。
https://docs.python.org/ja/3/tutorial/inputoutput.html (Python公式チュートリアル 第7章 入出力、2026-09-18確認)
次のコードを実行したときの出力について、公式チュートリアルのフォーマット済み文字列リテラル(f-string)の説明に合うものはどれか。 year = 2016 event = '国民投票' print(f'{year}年の{event}の結果')
答えと解説を見る
正解は「2016年の国民投票の結果 という文字列が出力される」である。公式チュートリアルは、フォーマット済み文字列リテラル(f-string)の内側では'{'と'}'の間にPythonの式を書けると説明しており、例として year = 2016、event = '国民投票' のときf'{year}年の{event}の結果'が'2016年の国民投票の結果'になることを示している。したがって、'{'と'}'の間に式を書けないため構文エラーになるという説明、変数が展開されず'{year}年の{event}の結果'とそのまま出力されるという説明、変数名の文字列がそのまま出力されるという説明は、いずれも公式の記載と一致しない。
https://docs.python.org/ja/3/tutorial/inputoutput.html (Python公式チュートリアル 第7章 入出力、2026-09-24確認)
次のコードの出力について、公式チュートリアルのstr.format()メソッドの説明に合うものはどれか。 print('{1} and {0}'.format('spam', 'eggs'))
答えと解説を見る
正解は「eggs and spam(波括弧内の数字が参照する引数の位置を指定する)」である。公式チュートリアルは、str.format()メソッドで波括弧の中に数字を書くと、その数字がformat()に渡した引数の位置を指定すると説明し、例として'{1} and {0}'.format('spam', 'eggs')が'eggs and spam'になることを示している。したがって、引数を渡した順番のまま'spam and eggs'になるという説明、波括弧に数字を入れられず構文エラーになるという説明、波括弧の中身がそのまま出力され'1 and 0'になるという説明は、いずれも公式の記載と一致しない。
https://docs.python.org/ja/3/tutorial/inputoutput.html (Python公式チュートリアル 第7章 入出力、2026-09-24確認)
テキストモードで開いたファイルオブジェクトfに対してf.readline()を呼び出したときの挙動として、公式チュートリアルの説明に合うものはどれか。
答えと解説を見る
正解は「ファイルから1行を読み取り、読み出された文字列の末尾に改行文字'\n'が残る(ただし改行のない最終行を除く)」である。公式チュートリアルは、f.readline()メソッドがファイルから1行だけを読み取り、改行文字は読み出された文字列の終端に残ると説明している。改行が省略されるのは、ファイルが改行で終わっていない場合の最終行のみである。また、ファイル終端に達した場合は空の文字列を返すと説明されており、常に改行が取り除かれる、終端でNoneを返す、全内容を配列として返すという説明はいずれも公式の記載と一致しない。
https://docs.python.org/ja/3/tutorial/inputoutput.html (Python公式チュートリアル 第7章 入出力、2026-09-24確認)
Pythonのオブジェクトをテキストファイルへ保存し、後で同じ構造のデータとして読み戻したい。公式チュートリアルのjsonモジュールの説明に合う組み合わせはどれか。
答えと解説を見る
正解は「json.dump(x, f)でファイルへシリアライズし、json.load(f)でファイルからデシリアライズする」である。公式チュートリアルは、jsonモジュールのjson.dump()関数がオブジェクトをテキストファイルにシリアライズし、json.load()関数がテキストファイルまたはバイナリファイルからデシリアライズすると説明している。json.dumps()はオブジェクトのJSON形式の文字列表現を返すだけでファイルへは書き込まないため、json.dumps(x)とjson.load(f)を組み合わせても、その文字列を別途ファイルへ書き込まない限り保存にはならない。したがって、json.dumpが文字列を返すだけでファイルへ書き込まないという説明や、json.loadがファイルへ書き込むための関数だという説明は、いずれも公式の記載と一致しない。
https://docs.python.org/ja/3/tutorial/inputoutput.html (Python公式チュートリアル 第7章 入出力、2026-09-24確認)