全79問から、出題範囲の骨格が掴める28問だけを抜き出しました。まずはここだけ流して、必要なら全問へ進んでください。
全79問に進むこの28問の内容
出典: オリジナル想定問題(当サイト作成、実際の過去問ではありません)。公表されている出題範囲に基づく(最終更新 2026-09-30)
Pythonチュートリアル1章で紹介されているPythonの言語としての特徴の説明として、最も適切なものはどれか。
- APythonは低水準言語であり、ハードウェアを直接制御するために設計されている
- ✓Pythonは高水準言語であり、インタプリタ型言語である
- CPythonは静的型付け言語であり、コンパイル時に型チェックを行う
- DPythonはマークアップ言語であり、プログラムの実行はできない
解説
Pythonは変数の型を事前宣言する必要のない高水準言語であり、ソースコードを逐次解釈して実行するインタプリタ型言語である。
根拠Pythonチュートリアル 1章 食欲をそそってみようか
Pythonの対話モードにおける特殊変数の扱いについて、正しい説明はどれか。
- ✓対話モードでは、直前に評価した式の結果が自動的に変数 "_" に代入されるが、スクリプトファイルの実行では代入されない
- Bスクリプトファイルの実行時のみ、直前に評価した式の結果が変数 "_" に自動的に代入される
- C対話モードとスクリプトファイルの実行のどちらでも、変数 "_" は同じ方法で自動的に更新される
- D変数 "_" はPythonの予約語であり、ユーザーが変数として使用することはできない
解説
対話モードでは直前に評価された式の結果が自動的に "_" に代入される特別な仕組みがあるが、これは対話モード限定の機能であり、スクリプトファイルの実行では行われない。
根拠Pythonチュートリアル 2章 Pythonインタープリタの使い方(対話モード)
`2 ** 10` を評価した結果はどれか。
- ✓1024
- B512
- C2048
- D100
解説
`**` はべき乗演算子であり、2の10乗を計算すると1024になる。
根拠Pythonチュートリアル 3章 気楽な入門編(数のこと)
文字列とリストの性質の違いに関する記述として正しいものはどれか。
- A文字列は要素の変更が可能だが、リストは一度作成すると要素を直接変更できない
- Bリストも文字列もどちらも要素を直接変更できる
- Cリストも文字列もどちらも要素を直接変更できない
- ✓リストは要素の変更が可能だが、文字列は一度作成すると要素を直接変更できない
解説
リストはミュータブル(可変)なため代入によって要素を書き換えられるが、文字列はイミュータブル(不変)であり、一度作成した文字列の一部を直接書き換えることはできない。
根拠Pythonチュートリアル 3章 気楽な入門編(リスト、文字列)
変数 `word` に文字列 "Cat" が代入されているとき、`word[3]` にアクセスするとどうなるか。
- A空文字列 '' が返る
- BNone が返る
- ✓IndexError例外が発生する
- D自動的に word[2] の値、すなわち 't' が返る
解説
"Cat"は長さ3の文字列でインデックスは0から2までしか存在しないため、存在しないインデックス3を指定するとIndexErrorが発生する。
根拠Pythonチュートリアル 3章 気楽な入門編(文字列)
対話モードで while 文を入力し、インデントされた継続行のプロンプト「...」が表示されている状態から、ブロックの入力を終えて実行させるにはどうすればよいか。
- Aセミコロンを入力する
- ✓インデントのない空行を入力する
- CCtrl+Cを押す
- Dend というキーワードを入力する
解説
対話モードで複数行の複合文を入力しているとき、インデントされていない空行を入力するとブロックの終わりと判断され、まとめて実行される。
根拠3章 気楽な入門編(while文と対話モードでの複数行入力)
文字列 word = 'Python' に対して word[0] = 'J' を実行すると、どのようなことが起こるか。
- A何も起きず、word の値は変わらないまま処理が続く
- B'Jython' に書き換えられる
- ✓TypeErrorが発生し、文字列の要素への代入はできない
- DIndexErrorが発生する
解説
文字列はイミュータブル(変更不可)なシーケンスであるため、インデックスを指定した要素への代入はTypeErrorとなる。書き換えたい場合は新しい文字列を作成する必要がある。
根拠3章 気楽な入門編(文字列の性質)
次のコードを実行したとき、result2の値はどれか。 def add_item(item, lst=[]): lst.append(item) return lst result1 = add_item(1) result2 = add_item(2)
- A[2]
- B[1]
- ✓[1, 2]
- Dエラーになる
解説
デフォルト引数の可変オブジェクトは関数定義時に一度だけ生成され、以降の呼び出しで共有されるため、1回目の呼び出しで追加された1が残ったまま2が追加される。
根拠Pythonチュートリアル4章 制御構造ツール(デフォルト引数値の重要な注意点)
Pythonのpass文の説明として正しいものはどれか。
- Aループを終了させる文である
- B次のイテレーションにスキップする文である
- C関数の実行を中断して呼び出し元に戻る文である
- ✓何もしないことを示す文で、構文的に文が必要だが処理は不要な場合に使う
解説
pass文は何も実行しない文であり、構文上は文が必要だが実際には何の処理も行いたくない場合のプレースホルダとして使われる。
根拠Pythonチュートリアル4章 制御構造ツール(pass文)
次のように定義された関数について、正しい説明はどれか。 def func(a, b, /, c, d, *, e, f): pass
- Aa, bはキーワード引数としてのみ渡せ、e, fは位置引数としてのみ渡せる
- Bすべての引数はキーワード引数としても位置引数としても渡せる
- Cc, dのみキーワード引数として渡すことができない
- ✓a, bは位置引数としてのみ渡せ、e, fはキーワード引数としてのみ渡せる
解説
スラッシュ(/)より前のa, bは位置専用引数となり位置引数としてのみ渡せる。アスタリスク(*)より後のe, fはキーワード専用引数となりキーワード引数としてのみ渡せる。c, dはその中間で両方の渡し方が可能である。
根拠Pythonチュートリアル4章 制御構造ツール(特殊なパラメータ:位置専用引数とキーワード専用引数)
次のコードを実行したとき、resultの値はどれか。 def greet(name, greeting="Hello"): return f"{greeting}, {name}!" args = ("Alice",) kwargs = {"greeting": "Hi"} result = greet(*args, **kwargs)
- AHello, Alice!
- ✓Hi, Alice!
- Cエラーになる
- DAlice, Hi!
解説
*argsによってタプルの要素がname位置引数として展開され、**kwargsによって辞書のキーと値がキーワード引数greetingとして展開されるため、greeting="Hi"、name="Alice"となり"Hi, Alice!"が返る。
根拠Pythonチュートリアル4章 制御構造ツール(引数リストのアンパック)
次のコードを実行したとき、check((3, 0))の戻り値はどれか。 def check(point): match point: case (0, 0): return "原点" case (x, 0): return f"X軸上: {x}" case (0, y): return f"Y軸上: {y}" case _: return "その他"
- ✓X軸上: 3
- B原点
- CY軸上: 3
- Dその他
解説
point=(3, 0)は最初のcase (0, 0)にマッチせず、次のcase (x, 0)にマッチしてxが3に束縛されるため、"X軸上: 3"が返される。
根拠Pythonチュートリアル4章 制御構造ツール(match文)
次のコードを実行したとき、出力される内容として正しいものはどれか。 numbers = [1, 2, 3] for n in numbers: if n == 2: numbers.append(4) print(n)
- A1 2 3 のみ出力される
- ✓1 2 3 4 が出力される
- C無限ループになり終了しない
- DRuntimeErrorが発生する
解説
for文はリストの要素をインデックスで順に取り出すため、ループ中にリストへ要素を追加すると、追加された要素もその後の反復対象に含まれてしまう。n=2のときappend(4)されるため、最終的に1,2,3,4の順で出力される。
根拠Pythonチュートリアル4章 for文(コレクションをイテレート中に変更することに関する注意)
次のコードを実行したとき出力される値はどれか。 x = 15 if x > 20: print("A") elif x > 10: print("B") elif x > 5: print("C") else: print("D")
- AA
- BC
- CD
- ✓B
解説
if/elif文は上から順に条件を評価し、最初に真となったブロックのみが実行されて残りのelif/elseは評価されない。x=15はx>20を満たさずx>10を満たすため'B'が出力される。
根拠Pythonチュートリアル4章 if文
次のコードを実行したとき、sum(squares)の値はどれか。 squares = [x**2 for x in range(1, 6) if x % 2 == 1] result = sum(squares)
- A30
- B55
- ✓35
- D25
解説
range(1,6)のうち奇数は1,3,5で、それぞれの2乗は1,9,25。これらの合計は1+9+25=35となる。
根拠Pythonチュートリアル 5.1.4 リストの内包表記
辞書 d = {'a': 1, 'b': 2} に対して、存在しないキー 'c' を d['c'] で参照した場合と d.get('c') で参照した場合の違いに関する説明として、正しいものはどれか。
- Ad['c']もd.get('c')も共にNoneを返す。
- Bd['c']はNoneを返すが、d.get('c')はKeyErrorを送出する。
- Cd['c']もd.get('c')も共にKeyErrorを送出する。
- ✓d['c']はKeyErrorを送出するが、d.get('c')はNoneを返す。
解説
角括弧によるアクセスで存在しないキーを指定するとKeyErrorが発生するが、get()メソッドは存在しない場合に例外を発生させず、デフォルトでNone(第2引数を指定すればその値)を返す。
根拠Pythonチュートリアル 5.5 辞書(dict.getメソッドと角括弧アクセスの違い)
リストの要素削除に関するdel文、remove()メソッド、pop()メソッドの違いとして、正しい説明はどれか。
- Adel文、remove()、pop()はすべて値を指定して要素を削除する。
- Bpop()は値を指定して削除し、remove()はインデックスを指定して削除する。
- ✓del文はインデックスを指定して要素を削除し戻り値を返さないが、pop()はインデックス(省略時は末尾)を指定して要素を削除しその値を返す。remove()は値を指定して最初に一致した要素を削除する。
- Ddel文はリストの要素だけでなく変数そのものを削除することはできない。
解説
del文はインデックス指定で削除し値を返さない、pop()はインデックス指定(省略時は末尾)で削除し値を返す、remove()は値を指定して最初に一致した要素を削除するという役割の違いがある。
根拠Pythonチュートリアル 5.1 リスト型についてもう少し/del文
モジュールmymodule.pyの中に if __name__ == '__main__': という条件分岐でのみ実行される処理を記述した。このモジュールを別のスクリプトからimport mymoduleとして読み込んだ場合、その処理はどうなるか。
- Aimportされた際にも必ず実行される。
- Bimportにエラーが発生する。
- CPython起動時に自動的に実行される。
- ✓importされた際には実行されない。
解説
モジュールがスクリプトとして直接実行されたときは__name__に'__main__'が設定されるが、importされた場合は__name__にモジュール名が設定されるため、if __name__ == '__main__':配下の処理は実行されない。
根拠Pythonチュートリアル 6.1.1 モジュールをスクリプトとして実行する
標準ライブラリのpprintモジュールに関する説明として、正しいものはどれか。
- ✓pprint.pprint()は、複雑にネストしたデータ構造を、print()よりも見やすく整形して出力する。
- Bpprint.pprint()は、print()よりも高速に出力できることを目的としたモジュールである。
- Cpprint.pprint()は、出力内容をファイルへ保存する専用の関数である。
- Dpprint.pprint()は、数値データを四捨五入して出力する。
解説
pprintモジュールは「pretty print」の名の通り、ネストしたリストや辞書などの複雑なデータ構造を読みやすい形に整形して出力することを目的としている。
根拠Pythonチュートリアル 11章 標準ライブラリめぐりPartII(フォーマット出力)
次のコードを実行した結果として正しいものはどれか。 t = (1, [2, 3], 4) t[1].append(5) print(t)
- ATypeErrorが発生し、プログラムが停止する
- ✓(1, [2, 3, 5], 4) が出力される
- C(1, [2, 3], 4, 5) が出力される
- Dtupleは変更できないため、appendメソッドの呼び出し自体が失敗する
解説
タプル自体は不変(要素の再代入はできない)だが、その要素がリストのような可変オブジェクトであれば、その要素の内部を変更する操作(append等)は可能である。t[1]はリストなのでappend(5)は正常に実行される。
根拠Pythonチュートリアル5章 データ構造 - タプルとシーケンス
リストのsort()メソッドと組み込み関数sorted()の違いに関する説明として、正しいものはどれか。
- ✓list.sort()は元のリストを直接変更しNoneを返すが、sorted()は新しいリストを返し元のリストは変更しない
- Blist.sort()もsorted()も新しいリストを返し、元のリストは変更しない
- Clist.sort()は新しいリストを返すが、sorted()は元のリストを直接変更する
- Dlist.sort()もsorted()も元のリストを直接変更し、戻り値は変更後のリストである
解説
list.sort()はリストを破壊的(インプレース)にソートしNoneを返す。一方sorted()は任意のイテラブルを受け取り、ソート済みの新しいリストを返し元のオブジェクトは変更しない。
根拠Pythonチュートリアル5章 データ構造 - リストの詳しい使い方
ファイル操作において、open()関数のモード引数に 'w' を指定した場合と 'a' を指定した場合の違いに関する説明として、正しいものはどれか。
- ✓'w' は既存の内容を消去してから書き込みを開始し、'a' は既存の内容の末尾に追記する
- B'w' はファイルの末尾に追記し、'a' は既存の内容を消去してから書き込む
- C'w' と 'a' はどちらもファイルが存在しない場合にエラーを発生させる
- D'w' と 'a' は読み込み専用モードであり、書き込みはできない
解説
'w' モードは既存ファイルの内容を破棄して新規に書き込みを開始し、'a' モードは既存の内容を保持したまま末尾に追記する。どちらもファイルが存在しなければ新規作成される。
根拠Pythonチュートリアル7章 入出力(ファイルのオープンとモードの違い)
次のコードを実行するとどうなるか。 try: result = 10 / 0 except Exception: print("一般エラー") except ZeroDivisionError: print("ゼロ除算エラー")
- A「ゼロ除算エラー」が出力される
- ✓「一般エラー」が出力される
- C両方の文字列が出力される
- Dexcept節の順序が不正なため定義時にSyntaxErrorになる
解説
ZeroDivisionErrorはExceptionのサブクラスであるため、先に書かれたexcept Exceptionで捕捉されてしまい、後続のexcept ZeroDivisionErrorには到達しない。定義時にはエラーにならず実行時にこの挙動となる。
根拠Pythonチュートリアル8章 エラーと例外(複数のexcept節と例外クラスの階層)
次のように定義されたクラスがある。 class Animal: def __init__(self, name): self.name = name class Dog(Animal): def __init__(self, name, breed): self.breed = breed d = Dog("Pochi", "Shiba") print(d.name) このコードを実行するとどうなるか。
- A"Pochi" と出力される
- B"Shiba" と出力される
- ✓AttributeErrorが発生する
- DTypeErrorが発生する
解説
Dogクラスの__init__でsuper().__init__(name)を呼び出していないため、親クラスAnimalのname属性が設定されず、d.nameへのアクセス時にAttributeErrorが発生する。
根拠Pythonチュートリアル9章 クラス(継承とsuper()による親クラスの初期化)
次のコードを実行したとき、daysの値はどれか。 from datetime import date d1 = date(2024, 1, 1) d2 = date(2024, 3, 15) days = (d2 - d1).days
- A73
- B75
- C60
- ✓74
解説
2024年はうるう年のため2月は29日ある。1月1日から3月15日までの日数は、残り1月30日+2月29日+3月15日=74日となる。
根拠Pythonチュートリアル10章 標準ライブラリめぐり(datetimeモジュール)
標準ライブラリのjsonモジュールを使って、Pythonの辞書オブジェクトをファイルにJSON形式で書き込みたい。正しい手順はどれか。
- ✓open(file, 'w') でファイルオブジェクトを取得し、json.dump(data, f) を呼び出す
- Bopen(file, 'rb') でファイルオブジェクトを取得し、json.dumps(data, f) を呼び出す
- Cjson.dump(file, data) のようにファイルパスとデータをこの順で渡す
- Dファイルを開かずに json.write(data, file) を直接呼び出す
解説
json.dumpは第一引数にシリアライズ対象のデータ、第二引数に書き込み用のファイルオブジェクトを取る。ファイルはテキストモード('w')で開く必要がある。
根拠Pythonチュートリアル10章 標準ライブラリめぐり(jsonモジュール)
open()関数で取得したファイルオブジェクトを扱う際、with文を使う場合の利点として正しいものはどれか。
- Awith文はopen()関数の代替であり、open()を使わずにファイルを開ける
- Bwith文を使わなくてもopen()したファイルは自動的にクローズされるため、両者に違いはない
- ✓with文は例外が発生した場合でもブロックを抜ける際にファイルを自動的にクローズする
- Dwith文は特定のファイルモード('w'など)でしか使用できない
解説
with文はコンテキストマネージャとして働き、ブロックを正常終了・例外発生のいずれで抜けた場合でもファイルのclose()処理を自動的に行う。明示的なclose()忘れやリソースリークを防げる点が利点である。
根拠7章 入出力(ファイルの読み書き)
組み込み関数str()とrepr()の違いに関する説明として、正しいものはどれか。
- Arepr()は数値型など文字列以外のオブジェクトには使用できない
- Bstr()とrepr()はすべての型に対して常に同じ文字列を返す
- Cprint()関数は内部でrepr()を呼び出して引数を文字列に変換している
- ✓str()は人間が読みやすい表現を返し、repr()は可能であればPythonのコードとして評価できるような表現を返す
解説
str()は人間にとって読みやすい表現を目的とし、repr()は可能であればeval()等で元のオブジェクトを再構築できるような、より厳密な表現を返すことを目的としている。print()が内部で使うのはstr()である。
根拠7章 入出力(文字列表現の書式化)