本文へ進む
情報Ⅰ プログラミング演習道場

第7章 共通テスト表記との対応 ― 試験の言葉に翻訳する

更新:2026-09-09

初めて訪れた方は学習ガイドへ。例題の結果を予想してから実行し、値を変えて確かめ、問題の空欄を自分で書いて進めましょう。

入力したコードは再読み込みで消えます。残しておきたい内容は手元へコピーしてください。実行できないときは読み込みの対処を確認できます。

この章で学べること
この章のゴール:試験の表記で書かれたプログラムを、Pythonの知識で読み解けるようになること。第1〜6章で身につけた力を、本番の紙面で使える形に仕上げる章です。
この章の進め方
これまでと少しちがい、「試験の表記で読む → Pythonに翻訳する → 実行して確かめる」をくり返します。自分の答えが合っているかを、自分の翻訳と実行で検証できるのがこの章の練習法です。
目次
  1. STEP 1 見比べる ― 対応表
  2. STEP 2 差がつく3か所 ― 翻訳ドリル
  3. エラー例 ― エラーが出ないのに答えがちがう!
  4. STEP 3 トレース道場 ― 手で追う
  5. STEP 4 ミニ模試 ― 空欄をうめる
  6. 過去問への橋渡し
  7. 自由実行スペース

STEP 1見比べる ― 対応表

共通テストのプログラミング問題は、Pythonではなく「共通テスト用プログラム表記」という日本語まじりの表記で出題されます。でも心配はいりません。順次・分岐・反復・配列という設計はPythonとそっくりで、下の対応表のとおり読み替えるだけです。しかも、記号や関数の意味は問題文に書かれた定義を確認します。暗記ではなく「読み替えの練習」がそのまま得点になります。

やりたいことPython(このサイト)共通テストの表記
表示するprint('合計は', goukei)表示する("合計は", goukei)
代入x = 3x = 3 (同じ!)
わり算17 / 5 → 3.417 / 5 (同じ)
商とあまり17 // 5 → 3
17 % 5 → 2
17 ÷ 5 → 3 (÷が「商」)
17 % 5 → 2 (同じ)
くり返しfor i in range(5):
iは0〜4。5は含まない
i を 0 から 4 まで 1 ずつ増やしながら繰り返す:
4を含む
もし〜ならif x >= 60:
elif x >= 30:
else:
もし x >= 60 ならば:
そうでなくもし x >= 30 ならば:
そうでなければ:
くらべる== != < > <= >=まったく同じ。問題文の定義を確認する
かつ・またはandor英語のまま同じ。意味は問題文の説明で確認する
入力n = int(input())
s = input()
n =【整数を入力】
s =【文字列を入力】
配列tokuten = [80, 92]Tokuten = [80, 92]
この例では配列名の先頭を大文字で表す。添字の始まりは問題文の定義を確認し、Pythonに翻訳するときも対応をそろえる
関数len(a)random.randint(1, 6)要素数(Tokuten)乱数(1, 6) のような日本語名。使い方は問題文の説明で確認する

字下げ(インデント)が「くり返しの中」「もしの中」を表すルールも同じです。試験の紙面では各行に (1) (2) のような行番号がつき、字下げの範囲が線で示されることもありますが、意味は今まで学んだとおりです。

例題 1

まずは1つ、読み替えを体験しましょう。次の「試験の表記」のプログラムを——

(1) Tokuten = [80, 92, 67] (2) goukei = 0 (3) i を 0 から 2 まで 1 ずつ増やしながら繰り返す: (4)   goukei = goukei + Tokuten[i] (5) 表示する("合計は", goukei)

Pythonに翻訳すると、こうなります。実行して、第5章でやった「合計の走査」と同じものだと確かめてください。

最初のコードを読む(実行できないとき)
tokuten = [80, 92, 67]
goukei = 0
for i in range(3):
  goukei = goukei + tokuten[i]
print('合計は', goukei)
アラン先生
新しい言語に見えますが、順次・分岐・反復・配列という骨組みは全部同じですよ。プログラムの本質は「どう書くか」ではなく「どう動くか」です。みなさんはもう、この表記を読む力を持っているはずですよ。

STEP 2差がつく3か所 ― 翻訳ドリル

対応表のほとんどは「見ればわかる」読み替えですが、まちがいが多いのは決まって3か所です。1つずつ、翻訳の練習で体にしみこませましょう。

差分1 くり返しの「終わりの値」が含まれる

最重要ポイントです。試験の表記の「i を 1 から 4 まで」は4を含む(1, 2, 3, 4 の4回)。Pythonの range(1, 4)4を含まない(1, 2, 3 の3回)。だから翻訳するときは終わりの値に1を足して range(1, 5) と書く必要があります。

やってみよう 7-1

次の試験表記のプログラムをPythonに翻訳します。for文の1行を書き加えなさい。

(1) kaisu = 0 (2) i を 1 から 4 まで 1 ずつ増やしながら繰り返す: (3)   kaisu = kaisu + i (4) 表示する(kaisu)
<実行結果例>10
最初のコードを読む(実行できないとき)
kaisu = 0
# ▼ ここに1行書こう(for文に翻訳。終わりの値に注意)

  kaisu = kaisu + i
print(kaisu)
解答例を見る(まず自分で書いてから開くこと)
kaisu = 0
for i in range(1, 5):
  kaisu = kaisu + i
print(kaisu)
1+2+3+4=10 です。もし range(1, 4) と書くと6になってしまいます。「〜まで、は含む。rangeは含まない」——この章でいちばん大事な1行です。

差分2 「÷」は商(Pythonの //)

試験の表記の ÷ は「商」、つまりPythonの // です。ふつうのわり算は試験でも /、あまりは試験でも %。第2章の「商とあまり」がここで効いてきます。

やってみよう 7-2

次は、17を5で割ったときの商とあまりを出す試験表記のプログラムです。これをPythonに翻訳します。2行を書き加えなさい。

(1) shou = 17 ÷ 5 (2) nokori = 17 % 5 (3) 表示する(shou, "あまり", nokori)
<実行結果例>3 あまり 2
最初のコードを読む(実行できないとき)
# ▼ ここに2行書こう(÷と%を翻訳して shou と nokori に代入)

print(shou, 'あまり', nokori)
解答例を見る(まず自分で書いてから開くこと)
shou = 17 // 5
nokori = 17 % 5
print(shou, 'あまり', nokori)
÷/ と訳すと 3.4 になり、答えがずれます。÷を見たら //、と条件反射にしておきましょう。

差分3 見た目のちがい(表示する・配列名・日本語の関数)

残りは「見た目」の差です。表示する( )print( )、先頭大文字の配列名 Namae はPythonでは小文字 namae でかまいません。要素数( ) のような日本語の関数が出てきたら、問題文の説明枠を読んで len( ) のような知っている道具に置き換えます——第6章STEP2でやった「説明を読んで使う」練習そのものです。

やってみよう 7-3

仕上げに、次のプログラム全体を自分で考えてPythonに翻訳しなさい。

(1) Namae = ["あさひ", "つばさ"] (2) i を 0 から 1 まで 1 ずつ増やしながら繰り返す: (3)   表示する(Namae[i], "さん")
<実行結果例>あさひ さん つばさ さん
最初のコードを読む(実行できないとき)
# ▼ ここから下に書いてみよう(3行のプログラムを翻訳)
解答例を見る(まず自分で書いてから開くこと)
namae = ['あさひ', 'つばさ']
for i in range(2):
  print(namae[i], 'さん')
「0から1まで」は2回なので range(2)。「終わりの値」と「見た目のちがい」——2つの差分が入った翻訳でした。ここまでできれば読み替えは合格です。

エラー例 ― エラーが出ないのに答えがちがう!

この章のこわさは、これまでとちがってエラーメッセージが出ないことです。翻訳をまちがえても、プログラムは動いて「ちがう答え」を出します。わざとまちがえて、事故の現場を見ておきましょう。

エラー例 1 終わりの値をそのまま range に書いた

やってみよう 7-1 と同じ「1から4まで」の合計を、range(1, 4) と訳してしまいました。正しい答えは10です。

最初のコードを読む(実行できないとき)
kaisu = 0
for i in range(1, 4):
  kaisu = kaisu + i
print(kaisu)
何が起きたかを見る(実行してから開くこと)
エラーは出ず、6 と表示されます。最後の1回(i=4)が実行されず、正解の10より小さくなりました。本番でこれをやると、まちがった選択肢がちゃんと用意されています。「〜まで、は含む」を思い出して range(1, 5) に直しましょう。

エラー例 2 ÷ を / と訳した

「17 ÷ 5」(商なので正解は3)を、そのまま / で訳してしまいました。

最初のコードを読む(実行できないとき)
shou = 17 / 5
print(shou)
何が起きたかを見る(実行してから開くこと)
これもエラーは出ず、3.4 と表示されます。トレース問題で「この時点の値は?」と問われたとき、3と3.4のどちらの選択肢もならんでいるのが本番です。÷//(商)——差がつくのはいつもここです。
ノイマン先生
いいかね、エラーが出るまちがいはまだ気付けるからいいんだ。本当にこわいのは、黙ってちがう答えを出すまちがいだよ。だからこそトレース——手で追って確かめることを徹底して、細かいミスをなくすんだ。

STEP 3トレース道場 ― 手で追う

共通テストで直接問われるのは「読む」力です。でも、その読む力は、自分で書いてきた経験からしか育ちません。その中心がトレース——1行ずつ実行したつもりになって、変数の値の変化を表に記録していく作業です。第4章で使ったトレース表を、今度は試験の表記で使います。

例題 2

次のプログラムは、配列の中の奇数だけを合計します。下のトレース表の「?」を、紙の上で(または頭の中で)うめてから、表の下の答え合わせに進んでください。

(1) Kazu = [3, 1, 4, 1, 5] (2) goukei = 0 (3) i を 0 から 4 まで 1 ずつ増やしながら繰り返す: (4)   もし Kazu[i] % 2 == 1 ならば: (5)     goukei = goukei + Kazu[i] (6) 表示する(goukei)
iKazu[i]奇数?goukei
(始まる前)0
033
11
24
3
4
トレース表の答えを見る(自分でうめてから開くこと)
上から順に、goukei は 0 → 3 → 4 → 4(4は偶数なので×、変わらない)→ 5(Kazu[3]=1、○)→ 10(Kazu[4]=5、○)。最後に表示されるのは 10 です。

本当に10になるか、Python訳を実行して確かめましょう。

最初のコードを読む(実行できないとき)
kazu = [3, 1, 4, 1, 5]
goukei = 0
for i in range(5):
  if kazu[i] % 2 == 1:
    goukei = goukei + kazu[i]
print(goukei)
やってみよう 7-4

次のプログラムは、となりどうしの差のいちばん大きいものをさがします(第5章STEP 6の [i-1] の技です)。まず紙でトレースして表示される値を予想し、それからPythonに自分で考えて翻訳・実行して、予想と合うか確かめなさい。

(1) Data = [2, 5, 3, 6] (2) saidai = 0 (3) i を 1 から 3 まで 1 ずつ増やしながら繰り返す: (4)   もし Data[i] - Data[i-1] > saidai ならば: (5)     saidai = Data[i] - Data[i-1] (6) 表示する(saidai)
最初のコードを読む(実行できないとき)
# ▼ ここから下に書いてみよう(翻訳して、予想と合うかチェック)
解答例を見る(まず自分で書いてから開くこと)
data = [2, 5, 3, 6]
saidai = 0
for i in range(1, 4):
  if data[i] - data[i-1] > saidai:
    saidai = data[i] - data[i-1]
print(saidai)
差は順に 3、-2、3。最大は 3 です。「1から3まで」なので range(1, 4)——差分1がここでも登場しました。

STEP 4ミニ模試 ― 空欄をうめる

本番の問題は「プログラムの空欄に入るものを選ぶ」形式です。ここでは本番風の小問を2つ。答えを決めてから、Pythonに翻訳・実行して自分で検証する——これがこのサイト流の模試です。

問 7-A

3つの商品の値段の平均を求めるプログラムである。空欄に入るものを選び、Python訳を完成させて確かめなさい。

(1) Nedan = [120, 80, 220] (2) goukei = 0 (3) i を 0 から まで 1 ずつ増やしながら繰り返す: (4)   goukei = goukei + (5) heikin = goukei / 3 (6) 表示する("平均は", heikin)

の選択肢:⓪ 2 ① 3 ② 4
の選択肢:⓪ Nedan ① Nedan[i] ② i

<実行結果例>平均は 140.0
最初のコードを読む(実行できないとき)
nedan = [120, 80, 220]
goukei = 0
# ▼ ここに2行書こう(forと、足しこむ行。選んだ答えで翻訳)

heikin = goukei / 3
print('平均は', heikin)
解答を見る(実行して検証してから開くこと)
ア=⓪の2、イ=①のNedan[i] です。
nedan = [120, 80, 220]
goukei = 0
for i in range(3):
  goukei = goukei + nedan[i]
heikin = goukei / 3
print('平均は', heikin)
要素は3つ、添字は0〜2なので「2まで」(2を含んで3回)。もし①の3を選ぶと4回まわって配列の外に出てしまいます——エラー例1の逆パターンですね。
問 7-B(発展)

生徒6人の所属クラス(0組・1組・2組)から、各クラスの人数を数えるプログラムである。空欄に入るものを選び、Python訳を完成させて確かめなさい。

(1) Kumi = [1, 0, 2, 1, 1, 0] (2) Ninzu = [0, 0, 0] (3) i を 0 から 5 まで 1 ずつ増やしながら繰り返す: (4)   Ninzu[] = Ninzu[] + 1 (5) 表示する(Ninzu)

の選択肢:⓪ i ① Kumi[i] ② Ninzu[i]

<実行結果例>[2, 3, 1]
最初のコードを読む(実行できないとき)
kumi = [1, 0, 2, 1, 1, 0]
ninzu = [0, 0, 0]
for i in range(6):
# ▼ ここに1行書こう(選んだ答えで翻訳)

print(ninzu)
解答を見る(実行して検証してから開くこと)
ウ=①のKumi[i] です。
kumi = [1, 0, 2, 1, 1, 0]
ninzu = [0, 0, 0]
for i in range(6):
  ninzu[kumi[i]] = ninzu[kumi[i]] + 1
print(ninzu)
第5章の問5-5とまったく同じ「記録のパターン」でした。試験の表記になっても、中身は知っているパターン——これが実感できたら、この章は合格です。

過去問への橋渡し

ノイマン先生
ここからは大学入試センターの公式資料で過去問を確認しよう。このサイトの問題は練習用の独自例だ。過去問を解くときは、記号や関数の説明を読み、迷った箇所はこの章の対応表と照合するとよい。
過去問を解くときの3か条
① まず全体をながめて「何を計算する話か」をつかむ(1行目から読み始めない)
② 空欄の行だけを見ず、前後の行とセットで読む
③ 決めた答えは、頭の中でトレースして(家ではPythonに翻訳・実行して)確かめる
アラン先生
空欄に何が入るか迷ったら、「第1〜6章のどのパターンか」を探してみてください。積み上げ、最大値さがし、記録、[i-1]……試験のプログラムにも、学んだ処理を組み合わせて読める部分があります。ここまで自分の手で書いてきたのですから、大丈夫です。

自由実行スペース

思いついたことを自由に試すための場所です。過去問で見かけた試験表記のプログラムを、ここでPythonに翻訳して動かしてみるのがおすすめです。

最初のコードを読む(実行できないとき)
# 自由に書いてみよう
ノイマン先生
これで全7章、完走だ。あとは過去問で場数を踏むだけ——健闘を祈っているよ。いいかね、本番で迷ったら思い出したまえ。君はぜんぶ、自分の手で書いてきたのだ。

この章の確認:理由まで説明してみよう

問題で指定された範囲とPythonのrangeが作る値を照合できますか。

total = 0
for i in range(2, 5):
  total = total + i
print(total)
出力と考え方を見る

出力:9

iは2、3、4です。開始前0、各回の終了後は2、5、9となり、最後に9を表示します。「2から4まで」を処理する例です。

4から2まで1ずつ減らして同じ値を足す場合、forの行はどうなりますか。

変更後の答えを見る

for i in range(4, 1, -1): です。4、3、2の順に動き、合計は9です。減らすときもrangeの終了値を含みません。

自分でコードを書き換えて、この章の自由実行スペースで確かめてください。出力の一致だけでなく、変数がどの順に変わったかも説明できれば次へ進みましょう。

つまずいたときの説明学習の進め方参考資料

実行環境を準備中…