直前期の総復習用
Python3エンジニア認定基礎試験の要点整理(チートシート)
Python 3 エンジニア認定基礎試験は、全14章の範囲から40問が出題されます。このページは、章別の出題数を一覧にしたうえで、出題数の多い第3章・第4章・第5章・第8章・第9章の要点と、結果を取り違えやすい文法の違いをまとめた復習用の整理です。初めて学ぶ人向けの解説ではなく、章別演習を進めた人が抜けを確認する用途を想定しています。
記載はPython公式チュートリアル日本語版の説明の範囲に限り、公式の試験問題は転載していません。コードを読んで結果を判断する試験のため、各項目は手元で動かして確かめてください。
公式情報の確認
試験日、料金、申込条件、試験方式など変動する情報は、公式情報を最終確認してください。 当サイトの一次情報確認日: 2026-09-18。
出題形式・合格基準・実施要項は変動するため、受験前に公式情報を確認してください。
このページの使い方
状況によって使い方が変わります。自分に近い行から始めてください。
まだ範囲を一周していない人
章別演習をこれから進める段階の人
このページは要点の一覧で、コードを動かして確かめる代わりにはなりません。まず章別演習で出題数の多い第4章・第5章・第3章を解き、間違えた論点だけをこのページで拾い直します。
直前期に総復習したい人
試験までの残り時間で抜けを確認したい人
章別の出題数の表で配点の高い章を確認し、要点一覧の該当章を上から読みます。説明できない項目があれば、その章の演習に戻ります。
似た文法の結果で迷いやすい人
コードを読んで出力を判断する問題で失点しやすい人
紛らわしい違いの整理を先に確認し、各項目を実際にインタープリタで動かして結果を見ます。読んで結果を言い切れるかを基準にしてください。
章別の出題数(全40問)
章別の出題数は運営団体の公表値で、CBT実施元の出題率とも一致することを2026年9月18日に確認しています。第4章・第5章・第3章の3章で22問(55%)を占めます。
| 章 | 出題数 | 出題比率 |
|---|---|---|
| 第1章 食欲をそそってみようか | 1問 | 2.5% |
| 第2章 Pythonインタープリタの使い方 | 1問 | 2.5% |
| 第3章 気楽な入門編 | 6問 | 15.0% |
| 第4章 制御構造ツール | 9問 | 22.5% |
| 第5章 データ構造 | 7問 | 17.5% |
| 第6章 モジュール | 2問 | 5.0% |
| 第7章 入出力 | 1問 | 2.5% |
| 第8章 エラーと例外 | 4問 | 10.0% |
| 第9章 クラス | 2問 | 5.0% |
| 第10章 標準ライブラリめぐり | 4問 | 10.0% |
| 第11章 標準ライブラリめぐり─PartII | 1問 | 2.5% |
| 第12章 仮想環境とパッケージ | 1問 | 2.5% |
| 第13章 次はなに? | 0問 | 0.0% |
| 第14章 対話環境での入力行編集とヒストリ置換 | 1問 | 2.5% |
章別の要点一覧(出題数の多い5章)
第3章 気楽な入門編(6問・15.0%)
この章の問題を解く →数値・文字列・リストの基本操作を扱う章です。演算子の結果の型と、文字列とリストの可変・不変の違いが問われやすい範囲です。
- / と // と %
- 除算(/)は常に浮動小数点数を返します。// 演算子は整数除算を行い整数値を返し、剰余は % で求めます。
- 変数 _
- 対話モードでは、最後に表示された結果が変数 _ に代入されます。
- 文字列の不変性
- 文字列は変更できません。文字列のインデックスで指定した場所に代入するとエラーが発生します。
- スライス
- 開始値は含まれ、終了値は含まれません。最初のインデックスを省略すると 0、二番めを省略するとスライスする文字列のサイズとみなされます。
- 範囲外のスライス
- 大きすぎるインデックスの指定は IndexError になりますが、スライスで範囲外を使ったときは処理されます(word[4:42] は 'on'、word[42:] は '' になる例が公式にあります)。
- 隣接する文字列リテラル
- 連続して並んだ複数の文字列リテラルは自動的に連結されます。働くのはリテラルどうしだけで、変数や式には働きません。
- リストの可変性
- リストは可変型なので要素を入れ替えられます。スライスへの代入で、リストのサイズを変更したり全てを削除したりもできます。
- 比較演算子
- <、>、==、<=、>=、!= が標準の比較演算子で、C 言語と同様です。
第4章 制御構造ツール(9問・22.5%)
この章の問題を解く →全14章のうち最も出題数が多い章です。ループの else、関数の引数の種類、デフォルト値の評価タイミングなど、動かさないと結果を言い切れない論点が中心です。
- if / elif / else
- elif は 'else if' を短くしたもので、一連の if ... elif ... は他の言語の switch 文や case 文の代用になります。
- range()
- 指定した終端値は生成されるシーケンスに入りません。range(10) は 10 個の値を生成します。返るオブジェクトはリストのように振る舞いますが、本当はリストではありません。
- break と continue
- break は最も内側の for 文または while 文から抜け出します。continue はループの次のイテレーションを実行します。
- ループの else 節
- break を実行せずにループが終了すると実行されます。break、return、例外で途中終了した場合は実行されません。
- pass 文
- 何もしない文で、構文上文が必要だが動作は不要なときに使います。
- match 文
- 式の値を、続く case ブロックのパターンと比較し、最初にマッチしたパターンだけを実行します。どの case にもマッチしなければ、どの分岐も実行されません。case _ のワイルドカードはマッチに絶対失敗しません。
- 関数の戻り値
- return 文に式がない場合と、return 文なしで関数が終了した場合は None が返ります。
- 関数内のスコープ
- 変数の参照はローカル、外側の関数のローカル、グローバル、組み込みの順に検索されます。global 文や nonlocal 文で指定しない限り、グローバル変数などへ直接代入はできません。
- デフォルトの引数値
- デフォルト値は関数が定義された時点で1度だけ評価されます。リストや辞書のような変更可能なオブジェクトのときは影響が出ます(def f(a, L=[]) を f(1)、f(2)、f(3) と呼ぶと [1]、[1, 2]、[1, 2, 3] が出力される例が公式にあります)。
- 位置専用・キーワード専用
- / より前の引数は位置専用、* より後の引数はキーワード専用です。/ と * の間は位置またはキーワードで渡せます。
- *args と **
- 任意個数の引数は *args でタプルに格納されます。*args の後の仮引数はキーワード専用になります。呼び出し側の * はリストやタプルを、** は辞書をアンパックして渡します。
- lambda 式
- 名前のない小さな関数を生成します。構文上、単一の式に制限されます。
- PEP 8
- ほとんどのプロジェクトが守っているスタイルガイドです。インデントは空白4つでタブは使わず、行は79文字を越えないように折り返します。
第5章 データ構造(7問・17.5%)
この章の問題を解く →リスト・タプル・集合・辞書の性質の違いが問われる章です。メソッドが値を返すか、キーにできるのはどの型かを区別します。
- append() と extend()
- append() はリストの末尾に要素を1つ追加します(a[len(a):] = [x] と同様)。extend() はイテラブルのすべての要素を追加してリストを拡張します(a[len(a):] = iterable と同様)。
- pop() と del 文
- pop() は指定位置(省略時は末尾)の要素を取り除いて返します。del 文は値を返さず、スライスの除去やリスト全体の削除もできます。
- list.clear()
- リスト中の全ての要素を削除します。del a[:] と同様です。
- スタックとキュー
- スタックは append() と pop() で後入れ先出しになります。キューには先頭の操作が高速な collections.deque を使うとよいとされ、popleft() で先頭から取り出します。
- リスト内包表記
- 括弧の中の式、for 句、0個以上の for 句か if 句で構成されます。式がタプルの場合は丸括弧が必要です。
- タプル
- 不変で、要素への代入は TypeError になります。要素が1つのタプルは、値の後ろにコンマを続けて作ります。
- 辞書のキー
- キーは変更不能な型でなければなりません。文字列と数値は常にキーにできます。リストはキーにできません。
- get()
- 存在しないキーを d[key] で取り出すと KeyError が発生します。get() は、キーが存在しない場合に None(または指定したデフォルト値)を返します。
- 空集合
- 空集合の作成には set() を使います。{} は空の辞書を作成します。
- ループのテクニック
- 辞書は items()、シーケンスは enumerate()、複数のシーケンスの同時ループは zip()、逆順は reversed() を使います。
- is と ==
- is と is not は二つのオブジェクトが実際に同じオブジェクトかを調べます。== は値が等しいかを調べます。
- シーケンスの比較
- 辞書的な順序で、最初の要素から順に比較します。片方がもう一方の先頭部分にあたる場合は、短い方が小さいとみなされます。
第8章 エラーと例外(4問・10.0%)
この章の問題を解く →try 文の各節がいつ実行されるかを整理する章です。except・else・finally の実行条件を混同しないことが要点です。
- 構文エラーと例外
- 構文エラーは構文解析エラーとも呼ばれます。文や式が構文的に正しくても、実行中に検出されたエラーは例外と呼ばれます。
- except 節
- try 節内で例外が発生し、その例外型が指定と一致する場合に実行されます。複数ある場合は最初に一致した節だけが実行されます。
- else 節(try 文)
- try 節で例外が全く送出されなかったときに実行されます。すべての except 節よりも後ろに置きます。
- finally 節
- 例外が発生するかどうかに関わらず、必ず実行されます。try 節が break・continue・return に達した場合は、その直前に実行されます。
- raise 文
- 特定の例外を発生させます。例外クラスが渡された場合は引数無しのコンストラクタが呼び出され、raise ValueError は raise ValueError() の省略記法です。except 節の中の単純な raise は例外を再送出します。
- raise ... from
- ある例外が他の例外から直接影響されていることを示します。自動的な例外の連鎖を無効にするには from None を指定します。
- with 文
- ファイルのようなオブジェクトが常に即座に正しくクリーンアップされることを保証します。
第9章 クラス(2問・5.0%)
この章の問題を解く →出題数は少ないものの、慣習と仕様を取り違えやすい語が集まる章です。
- 名前空間とスコープ
- 名前空間は名前からオブジェクトへの対応付けです。スコープは、ある名前空間が直接アクセスできる Python プログラムのテキスト上の領域です。
- self
- メソッドの最初の引数を self と呼ぶのは慣習で、Python では何ら特殊な意味を持ちません。
- クラス変数とインスタンス変数
- クラス変数はそのクラスのすべてのインスタンスで共有される属性、インスタンス変数はそれぞれのインスタンス固有のデータです。可変オブジェクトをクラス変数にすると全インスタンスで共有されます。
- プライベート変数
- オブジェクトの中からしかアクセスできない「プライベート」インスタンス変数は Python にはありません。__spam の形式の識別子は _classname__spam にテキスト置換されます。
- ジェネレータ
- 通常の関数のように書き、データを返すときに yield 文を使います。next() のたびに中断した処理を再開し、終了時には自動的に StopIteration を送出します。
第1章・第2章・第6章・第7章・第10章・第11章・第12章・第14章は出題数が1〜4問です。この一覧では扱わないため、章別演習で確認してください。
紛らわしい違いの整理
コードの出力や例外を選ぶ問題で取り違えやすい9組です。違いを言葉で言えるだけでなく、動かして結果を確認しておくと安定します。
/ と //
/ は常に浮動小数点数を返し、// は整数除算です。割り切れる場合でも / の結果は浮動小数点数になる点が、選択肢の読み違いにつながります。
pop() と del 文
どちらも要素を取り除きますが、pop() は取り除いた値を返し、del 文は値を返しません。範囲外のインデックスやリストが空のとき pop() は IndexError を送出します。
append() と extend()
append() は渡したものを1つの要素として末尾に追加し、extend() はイテラブルのすべての要素を追加します。
ループの else と try 文の else
ループの else は break されずに終了したときに実行されます。try 文の else は例外が送出されなかったときに実行されます。公式チュートリアルはループの else を if 文の else よりも try 文の else に似ていると述べています。
位置専用引数とキーワード専用引数
/ の前は位置専用でキーワードでは渡せません。* の後はキーワード専用で、位置引数として渡すと TypeError になります。
{} と set()
{} は空の辞書を作成します。空集合を作るには set() を使います。
d[key] と get()
存在しないキーを d[key] で取り出すと KeyError が発生します。get() は None(または指定したデフォルト値)を返します。
is と ==
is は同じオブジェクトかどうか、== は値が等しいかどうかを調べます。
except 節と finally 節
except 節は例外の型が一致したときだけ実行されます。finally 節は例外の有無に関わらず必ず実行され、未処理の例外はその後に再送出されます。
一次資料: Python チュートリアル(公式・日本語版)
よくある質問
試験形式・合格基準の一次情報: 試験概要を確認する →
このチートシートだけで合格できる?
できません。このページは公式チュートリアルの記載をもとにした要点の一覧で、コードを読んで出力を判断する練習はできません。章別演習と組み合わせて、抜けている項目を確認する使い方が前提です。
どの章から優先して読めばいい?
40問中、第4章が9問、第5章が7問、第3章が6問で、3章だけで22問(55%)を占めます。次に第8章が4問、第10章が4問です。出題数の少ない章は、章別演習を一通り解く範囲で足ります。
試験時間や合格基準はどこで確認する?
運営団体(一般社団法人Pythonエンジニア育成推進協会)の試験概要ページで確認できます。当サイトが確認した時点では、試験時間60分・40問・選択式・正答率7割でした。実施要項は変わる可能性があるため、受験前に公式の案内を確認してください。
用語集との違いは?
用語集は用語を1件ずつ確認するページです。このチートシートは章ごとの出題数を先に確認し、要点と紛らわしい違いをまとめて復習したいときに使います。