「基礎試験と実践試験、名前は似ているけど、実際どれくらい違うの?」

「基礎試験に受かった勢いで、そのまま実践試験もいける気がする…」

こんなふうに考えている方、多いですよね。どちらも Python 3 エンジニア認定試験で、問題数も同じ40問。なのに合格率は約76%と約48.6%で、30ポイント近い差があります。

この記事は、基礎試験を受けた(または受けようとしている)初〜中級者向けです。数字の比較だけで終わらせず、同じテーマの問題が、基礎と実践でどう「問われ方」が変わるのかを、実際にコードを動かして比べていきます。どちらから受けるか、基礎のあと実践へ進むかを決めるときに、ざっくりとした判断材料がつかめるはずです。一緒に見ていきましょう!

まずは数字で比較:問題数は同じ、違うのは「時間」と「合格率」

exam preparation desk
exam preparation desk / Photo by This And No Internet 25 via Pexels

最初に、2つの試験の公表値を並べてみます。数字を手で計算するのは面倒なので、Python に計算させましょう。

# 基礎試験と実践試験の数字を並べて比べる(値は2026年8月時点の公表値)
exams = {
    "基礎試験": {"問題数": 40, "時間": 60, "受験料": 11000, "学割": 5500, "合格率": 76.0},
    "実践試験": {"問題数": 40, "時間": 75, "受験料": 13200, "学割": 6600, "合格率": 48.6},
}
PASS_LINE = 0.70  # どちらも合格ラインは70%

for name, e in exams.items():
    need = int(e["問題数"] * PASS_LINE)        # 合格に必要な正解数
    per_q = e["時間"] * 60 / e["問題数"]      # 1問あたりの秒数
    print(f"【{name}】")
    print(f"  合格に必要な正解数: {need}問 / {e['問題数']}問(落とせるのは{e['問題数'] - need}問)")
    print(f"  1問あたりの時間  : {per_q:.1f}秒")
    print(f"  受験料(学割)    : {e['受験料']:,}円({e['学割']:,}円)")
    print(f"  合格率           : 約{e['合格率']}%")

b, j = exams["基礎試験"], exams["実践試験"]
print("---")
print(f"1問あたりの時間の差: +{(j['時間'] - b['時間']) * 60 / 40:.1f}秒")
print(f"受験料の差        : +{j['受験料'] - b['受験料']:,}円")
print(f"合格率の差        : {j['合格率'] - b['合格率']:.1f}ポイント")

実行すると、次の結果になりました。

項目 基礎試験 実践試験
問題数・試験時間 40問・60分 40問・75分
1問あたりの時間 90.0秒 112.5秒
合格ライン 70%(単純計算で28問) 70%(単純計算で28問)
受験料(学割) 11,000円(5,500円) 13,200円(6,600円)
合格率 約76% 約48.6%

ポイントをまとめるとこんな感じです👇

  • 問題数と合格ラインはまったく同じ(落とせるのは単純計算で12問)
  • 実践試験は1問あたり22.5秒多く時間がもらえる。つまり、それだけコードを読む量が多い問題が出ると考えておくのが自然です
  • 受験料の差は2,200円。一方、合格率の差は27.4ポイントもあります

「時間が長いなら余裕がある」と思いがちですが、実際は逆です。時間が長いのは、1問の中で読むコードや選択肢が長いからなんですね。

なお、受験料・合格率は2026年8月時点の値です。最新の実施要項は協会公式サイト(pythonic-exam.com)をご確認ください。

違い①「数える」問題:基礎は辞書とfor文、実践は Counter

では、問題の中身の違いを見ていきましょう。イメージとしては、基礎試験は「Python の文法そのものを正しく読めるか」、実践試験は「標準ライブラリなどの道具を正しく選んで使えるか」です。実践試験の主教材が「Python実践レシピ」(技術評論社)であることからも、この方向性が見えてきます。

同じ「リストの中の単語を数える」というテーマで比べてみます。これ、実行せずに出力を答えられますか?

# 同じ「単語を数える」でも、基礎と実践では問われる道具が違う
words = ["apple", "banana", "apple", "cherry", "banana", "apple"]

# --- 基礎試験レベル:辞書とfor文で自分で数える ---
counts = {}
for w in words:
    counts[w] = counts.get(w, 0) + 1   # 無ければ0から数え始める
print("基礎:", counts)
print("基礎:", counts.get("melon", 0))  # 存在しないキーでもエラーにならない

# --- 実践試験レベル:標準ライブラリに任せる ---
from collections import Counter

c = Counter(words)
print("実践:", c)
print("実践:", c.most_common(2))        # 多い順に上位2件
print("実践:", c["melon"])              # Counterは無いキーでも0を返す
単語を数える:基礎レベルと実践レベルの実行結果
単語を数える:基礎レベルと実践レベルの実行結果

実行結果はこうなりました(下の実行結果画像)。ここが重要です👇

  • 基礎レベルでは、counts.get(w, 0) + 1 の「無ければ0」の動きや、辞書の中身がどう表示されるかを読めることが大事
  • 実践レベルでは、Counter を知っているか、most_common(2) が(要素, 回数) のタプルのリストを返すことまで答えられるかがポイント
  • Counter は存在しないキーを指定しても KeyError にならず 0 を返します。普通の辞書で counts["melon"] と書くとエラーになるので、ここは対比で覚えておくと強いです

講師として基礎試験対策を教えていると、「辞書の get は書けるのに、[] で取り出したときとの違いを説明できない」受講生がとても多いと感じます。基礎試験では、この「同じ結果に見えて挙動が違う」部分の理解がそのまま得点差になります。逆に言えば、ここを自分で動かして確かめた人は、実践試験の Counter の問題にもスムーズに入れます。

違い②「グループに分ける」問題:実践はライブラリの”クセ”まで問われる

もう1つ、実践試験らしい差が出やすいテーマを見てみましょう。科目ごとに点数をまとめる例です。

# 同じ「グループに分ける」でも、実践試験はライブラリの"クセ"まで問われる
from itertools import groupby

scores = [("B", 70), ("A", 85), ("B", 60), ("A", 90)]

# --- 基礎試験レベル:sortedとlambdaで並べ替える ---
print("基礎:", sorted(scores, key=lambda s: s[0]))

# --- 実践試験レベル:groupbyは「隣り合う同じキー」しかまとめない ---
print("実践(並べ替えなし):")
for key, group in groupby(scores, key=lambda s: s[0]):
    print(" ", key, [point for _, point in group])

print("実践(先に並べ替え):")
for key, group in groupby(sorted(scores, key=lambda s: s[0]), key=lambda s: s[0]):
    print(" ", key, [point for _, point in group])
groupbyのクセ:並べ替えの有無による違い
groupbyのクセ:並べ替えの有無による違い

実行結果を見ると、違いがはっきりわかります。

  • 基礎レベル:sorted と lambda でキーを指定して並べ替えられるか。A の中は 85 → 90、B の中は 70 → 60 と、元の順番が保たれる(安定ソート)ところまで読めると完璧です
  • 実践レベル:itertools.groupby は「隣り合っている同じキー」だけをまとめます。並べ替えずに使うと、B・A・B・A と4つのグループに分かれてしまいます
  • 正しくまとめたいときは、先に同じキーで sorted してから groupby に渡すのが定番です

⚠️ この「並べ替えを忘れて groupby」は、実務でもやりがちなミスです。実践試験は「関数の名前を知っているか」より一歩進んで、「その道具を使うと実際に何が起きるか」を問う方向の問題が多いと考えておくとよいでしょう。

もう1つ講師としての実感を書くと、基礎試験に合格した受講生が実践試験の学習を始めたとき、最初につまずくのは文法ではなく「標準ライブラリを使った経験の少なさ」です。基礎試験は文法の理解で戦えますが、実践試験は「触ったことがあるか」がそのまま出ます。

どちらから受けるべき?レベル別の目安

ここまでの比較を踏まえると、選び方の目安はこんな感じです👇

今の状態 おすすめ
Python を学び始めて数か月。辞書の get と [] の違いがあやふや まず基礎試験。文法の穴をふさぐのが先
基礎の文法は説明できる。標準ライブラリはあまり使ったことがない 基礎試験で確認してから実践試験へ
業務や個人開発で collections や itertools などをふだん使っている いきなり実践試験も選択肢

受験の条件などの制度の詳細は、協会公式サイトをご確認ください。どちらから受けるにしても、上の get と [] の違いのような基礎の部分は、実践試験でも当然の前提として出てきます。

「自分が基礎試験レベルに届いているか」を確かめたい方は、筆者が運営するPython3エンジニア試験ラボの基礎試験 模擬試験パックのように、本試験と同じ40問・60分の形式で通しで解いてみるのがおすすめです。時間配分(1問90秒)の感覚もつかめます。

まとめ

  • 基礎試験と実践試験は、問題数(40問)と合格ライン(70%)は同じ。違うのは試験時間(60分と75分)と合格率(約76%と約48.6%)
  • 基礎試験は文法を正しく読めるか、実践試験は標準ライブラリなどの道具の挙動を知っているかが問われやすい
  • Counter の「無いキーは0」や、groupby の「隣り合うものだけまとめる」のように、実際に動かすと一発でわかるクセが実践試験の差になる
  • 迷ったら、まず基礎試験の範囲を固めてから実践試験へ進むのが堅実

今回のコードはどれも短いので、ぜひ自分の環境でも実行して、出力を予想してから確かめてみてください。「むずかしそう」を「できそう」に変える一番の近道です😊

よくある質問

Q. 基礎試験を飛ばして、実践試験から勉強してもいいですか?

A. 受験の条件などの制度の詳細は、協会公式サイトをご確認ください。学習の順番としては、実践試験でも基礎の文法は前提になるため、文法に不安がある場合は基礎試験の範囲から固めるのがおすすめです。

Q. 基礎試験と実践試験の受験料はいくらですか?

A. 2026年8月時点で、基礎試験は税込11,000円(学割5,500円)、実践試験は税込13,200円(学割6,600円)です。

Q. 実践試験のほうが試験時間が長いのは、なぜですか?

A. 試験時間は基礎試験が60分、実践試験が75分で、問題数はどちらも40問です。1問あたりに使える時間が長い分、標準ライブラリを使ったコードを読み取る問題など、1問の分量が多くなりやすいと考えて準備しておくとよいでしょう。

\ 本番形式の模擬試験を無料で試せます /

筆者が運営するPython3エンジニア試験ラボでは、基礎・実践・データ分析の3試験について、本試験と同じ形式の模擬試験を各1回分、無料で受験できます(クレジットカード登録不要)。本番の操作感と自分の実力チェックにどうぞ。

▶ 試験の全体像・勉強法のまとめは完全ガイドへ

→ 無料おためし模試を受け取る

📚 関連商品・おすすめ書籍

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

もしも

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

初心者に定番のPython入門書

Amazonで見る
徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

もしも

徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

電子工作とプログラミングを同時に学べる

Amazonで見る
Python Web開発実践入門 ―― FastAPIによるWebAPI開発と非同期処理

もしも

Python Web開発実践入門 ―― FastAPIによるWebAPI開発と非同期処理

FastAPIでWebAPI開発を実践的に学ぶ

Amazonで見る

※本記事にはアフィリエイトリンクが含まれます。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。