Python3エンジニア認定基礎試験 用語解説
with文とは
ファイルのように定義済みのクリーンアップ処理を持つオブジェクトを、常に正しく後始末するための構文。with open("myfile.txt") as f: と書くと、処理中に問題があってもファイル f は常に閉じられる。同等の try-finally より短く書ける。
この記事の目次
まず押さえる結論
with文は、Python3エンジニア認定基礎試験の「第7章 入出力」に出てくる用語です。定義だけでなく、どの場面で使う言葉か、何と混同しやすいか、問題文のどの表現で判断するかまで確認します。
情報源と編集区分
公式範囲を確認し、具体例・誤答例・判断手順は当サイトが編集。 一次情報確認日: 2026-09-18。
試験概要(公式)比較記事でさらに確認する
試験での問われ方
定義の言い換え
用語そのものではなく、説明文の一部を言い換えて出されることがあります。
似た概念との比較
同じ章の用語と入れ替えた選択肢に注意します。対象、目的、使う場面を分けます。
具体例からの判断
問題文の事例が、定義のどの部分に対応しているかを先に確認します。
誤答しやすいポイント
「第7章 入出力」の問題で、取り違えやすい組み合わせです。
- ファイルを開くモードと閉じる時点の取り違え。読み取りにはr、上書きにはwを使い、with文なら処理中に例外が起きてもブロック終了時にファイルが閉じられる。
関連する確認問題
第7章 入出力 / str.format()メソッドの引数指定
次のコードの出力について、公式チュートリアルの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'とそのまま出力される」の三つの選択肢は、公式チュートリアルの説明と合いません。
第7章 入出力 / ファイルオブジェクトのメソッド(f.readline())
テキストモードで開いたファイルオブジェクトfに対してf.readline()を呼び出したときの挙動として、公式チュートリアルの説明に合うものはどれか。
正解は「ファイルから1行を読み取り、読み出された文字列の末尾に改行文字'\n'が残る(ただし改行のない最終行を除く)」である。公式チュートリアルは、f.readline()メソッドがファイルから1行だけを読み取り、改行文字は読み出された文字列の終端に残ると説明している。改行が省略されるのは、ファイルが改行で終わっていない場合の最終行のみである。また、ファイル終端に達した場合は空の文字列を返すと説明されており、常に改行が取り除かれる、終端でNoneを返す、全内容を配列として返すという説明はいずれも公式の記載と一致しない。
第7章 入出力 / jsonモジュールによるデータの保存
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がファイルへ書き込むための関数だという説明は、いずれも公式の記載と一致しない。
同じ章で確認したい用語
到達チェック
- with文を一文で説明できる
- 同じ章の似た用語と違いを説明できる
- 問題文の具体例から、with文に関係する論点を拾える
- 関連問題を解き、誤答した選択肢の理由を確認できる
執筆: ミナト編集部(運営者情報を見る)