Python3 プログラミング実力確認テスト(解説&評価レポート付き)

「Python3 プログラミング実力確認テスト」では、Pythonの実力をチェックするための問題をまとめています。Pythonの体系的な学習をしたい場合や、自分の苦手分野を把握したい場合などにお役立てください。

無料で利用可能で、PC/スマホ/タブレット対応しています。自分のスキルレベルをチェックしたいエンジニアやIT関連業務に従事するビジネスマン、プログラミングを学びたい学生など、様々な人が利用できます。

 

【お知らせ】評価グラフが作成されるようになりました!

試験が完了すると評価レポートに加えて評価・分析グラフが表示されます!

問題数がより多い完全版で受験すると、詳細な評価・分析グラフが表示されるようになります。ぜひ自分の強みや弱みを把握しながら、プログラミング学習に役立ててください。

 

初学者向けのPythonテストができました!

プログラミング学習を始めたばかりの方を対象としているテストです。高難易度な問題は出題されないので、安心して学習できます。

Python×データサイエンス試験ができました!

データサイエンスや統計分析領域におけるPython3や実装に関する知識を測定します。プログラミングに関する能力だけでなく、分析や統計といったデータサイエンスに関わる実装能力、基礎知識についても出題されます。

Python3×データサイエンス試験

Python組み込み関数に絞ったテストができました!

Pythonに標準的に組み込まれている関数に限定して出題されるテストができました。

Webプログラミング、機械学習・AIプログラミング、データ分析など、利用用途を問わずにPythonを使用している人であればどなたにも役立つ内容となっています。

Pythonスキルチェック<組み込み関数編>

本試験について

本試験のユースケース、活用方法としては、次のようなものが挙げられます。

  1. 自分のPythonスキル・理解度を数値化する
  2. プログラミング資格に向けた教材として使う
  3. 【企業向け】社員や求職者のプログラミングスキルを数値化する
  4. 【教育機関向け】生徒の教育教材として使用する

本試験の平均正答率は61.48%です。このスコアを目安にテストを解いてみましょう。

出題問題一覧

本試験では、Pythonの前提・基礎知識、関数やクラスといったプログラミングの初歩的な概念、発展的な考え方や外部ライブラリを使用したプログラミング手法など、幅広い問題を取り扱っています。またオンライン試験なので、新しい問題も随時追加されていきます。

 

Pythonの前提知識

Pythonの歴史 問213

Pythonの実行環境構築

基礎知識

変数

データ型、型 問214, 問215, 問216, 問217
数値型、指数表記 問218
ミュータブル、イテラブル、シーケンス 問250, 問251

文字列と入出力

基礎知識 問240
lower(), upper() 問237
format() 問227
その他の文字列型の操作メソッド 問241, 問242
スライス表記 問243

リストとタプル

リストの操作 問228
del文 問257, 問258, 問259
内包表記 問230

条件文と分岐

if文 問221
三項演算子 問222

繰り返し

for文 問219
while文 問223
break文, continue文 問225, 問226
enumerate(), range() 問220, 問224

関数の定義

関数 問261, 問268
再帰関数 問271
スタックオーバーフロー 問232

クラスの定義

インスタンス、コンストラクタ 問235, 問234
継承、オーバーライド 問236
ポリモーフィズム 問244
例外処理 問247, 問248, 問249

予約語, 組み込み関数

予約語と組み込み関数 問233

モジュール、パッケージ、名前空間

本格的なプログラムやシステムを実装する場合、通常は複数のプログラムファイルが作成されることになります。そのため、別のファイルにある関数やクラスを読み込んだり、ファイル間で衝突しないように気をつける必要があります。そのときに必要なモジュール、パッケージ、名前空間についても押さえておきましょう。

発展問題

Pythonの基本構文を学んだ後は、さまざまな応用問題を解くことが重要です。計算機工学・情報工学分野で有名なアルゴリズムや、実用的なプログラムを理解できるようになりましょう。

ユークリッド互助法 問229
ソートアルゴリズム 問231
外部API連携 問238

実務・実践知識

Pythonはさまざまなビジネスや研究において使われています。可能なら実際に実務レベルで使われているPythonライブラリやフレームワークに関する知識についても、幅広く身につけましょう。「Pythonを使って実現できること」「どんなライブラリを使えばやりたいことを実現できるのか」を知っておくことが重要です。

SQLite 問269, 問270
OpenCV 問272

サンプル問題

Python3プログラミング実力確認テストでは、以下のような問題が出題されます。

サンプル問題①

問題:
Python3でSQLiteデータベースを使って、特定のデータを更新することを考える。このとき、正しい手順の流れとして適切なものは次のうちどれか。

選択肢:

(a)
クエリを実行し、コミットし、データベース接続を閉じる

(b)
クエリを実行し、データをフェッチし、データベース接続を閉じる

(c)
クエリを実行し、データベース接続を閉じる

(d)
クエリを実行し、データをフェッチし、コミットする


答えを表示する

答え
解説
正解は「クエリを実行し、コミットし、データベース接続を閉じる」です。

選択肢に含まれる各手順について説明します。

クエリ実行
→ データベースを操作する「SQL文」を実行します。SQL文を使うことで、テーブルの作成、データの挿入、更新、取得、削除などが行えます。

コミット
→ SQL文を使ったクエリ実行を行なってデータを変更した場合、その変更を確定させるためには、コミットをする必要があります。コミットをせずに操作を終了した場合、その変更は無かったことになります。

データのフェッチ
→ データベースから取得したデータを参照する手順です。基本的には一件ずつ抜き出します。

データベース接続を閉じる
→ データベースとの接続を切断します。

上記の説明をもとに考えると、特定のデータを更新するための手順の流れとしては「クエリを実行し、コミットし、データベース接続を閉じる」が適切であると考えられます。

以下にsqlite3ライブラリを使ってデータを更新するサンプルコードを示します。

import sqlite3

# 接続DBファイルの指定
conn = sqlite3.connect('example.sqlite3')
c = conn.cursor()

# SQL文の実行
sql="UPDATE persons SET name = 'taro' WHERE age = '20' and job = 'doctor'"
c.execute(sql)

# 変更の保存
conn.commit()

# DBから切断
conn.close()

【その他の選択肢】

「クエリを実行し、データをフェッチし、データベース接続を閉じる」
→ データを更新する場合、フェッチは不要です。コミットを行って変更を確定させる必要があります。

「クエリを実行し、データベース接続を閉じる」
→ クエリを実行した後、コミットを行って変更を確定させる必要があります。

「クエリを実行し、データをフェッチし、コミットする」
→ データを更新する場合、フェッチは不要です。また、データベース接続を閉じる手順が抜けています。

 

サンプル問題②

問題:
以下のコードを実行したとき、どのようなエラーが発生するでしょうか。

x = 5
print(X)

 

選択肢:

(a)
構文エラー

(b)
NameError

(c)
TypeError

(d)
エラーは発生しない


答えを表示する

答え
解説
以下のエラーが発生します。Pythonの変数では大文字・小文字を区別することに注意してください。

NameError: name 'X' is not defined

 

サンプル問題③

問題:
以下のコードを実行したとき、どのようなエラーが発生するでしょうか。

text = ""Hello, 世界!""
encoded_text = text.encode(""ascii"")

 

選択肢:

(a)
UnicodeDecodeError

(b)
UnicodeEncodeError

(c)
SyntaxError

(d)
TypeError


答えを表示する

答え
解説
ASCIIエンコーディングで扱えない文字が含まれているため、UnicodeEncodeErrorが発生します。

UnicodeEncodeError: 'ascii' codec can't encode characters in position 7-8: ordinal not in range(128)

 

サンプル問題④

問題:
Pythonには、さまざまな予約語や組み込み関数が標準的に用意されている。

予約語とは、プログラムにおいて特別な意味を持つキーワードのことであり、変数名や関数名、クラス名として使用することができません。予約語の具体例としては、次のようなものがあります。

if、else、elif:条件分岐で使用
for、while:ループ処理で使用
and、or、not:論理演算子として使用

したがって、次のようなプログラムを実行すると「(1)」が発生します。

and = 12345
print(and)

組み込み関数(Built-in functions)とは、Pythonに最初から実装されている関数のことです。代表的な組み込み関数としては、次のようなものがあります。

print(): 引数に渡された値を標準出力に表示する
len(): 引数に渡されたオブジェクトの要素数を返す
range(): 指定した範囲の整数を生成する
input(): ユーザーからの入力を取得する
type(): 引数に渡されたオブジェクトの型を返す
str(): 引数に渡されたオブジェクトを文字列に変換する
int(): 引数に渡されたオブジェクトを整数に変換する

組み込み関数を新しい変数名や関数名として使おうとした場合、エラーが発生することはありませんが、新しく定義したオブジェクトに書き換えられてしまいます。

したがって、次のようなプログラムを実行すると「(2)」が発生します。

print = 'abc'
print('test')

選択肢:

空欄(1) 空欄(2)
TypeError TypeError
TypeError SyntaxError
SyntaxError TypeError
SyntaxError SyntaxError

 

選択肢:

(a)

(b)

(c)

(d)


答えを表示する

答え
解説
予約語に関する説明でのプログラム:

and = 12345
print(and)

問題文のプログラムを実行すると、次のようなエラーが発生します。

  File "Main.py", line 5
    and = 12345
    ^
SyntaxError: invalid syntax

このことから、予約語を変数として使おうとすると構文エラーが発生することがわかります。したがって、空欄(1)にはSyntaxErrorが入ります。

組み込み関数に関する説明でのプログラム:

print = 'abc'
print('test')

問題文のプログラムを実行すると、次のようなエラーが発生します。

Traceback (most recent call last):
  File "Main.py", line 6, in <module>
    print('test')
TypeError: 'str' object is not callable

なぜこのような結果になるのかというと、この場合では、組み込み関数であるprint()が、’abc’という文字列が代入された変数printとして書き変わってしまっているからです。

したがって、文字列を保持する変数printはstr型(文字列型)となり、関数のようにコールすることができなくなります。このことから、上記のプログラムでは型エラーが発生することになります。したがって、空欄(2)にはTypeErrorが入ります。

復習&資格試験への挑戦もおすすめです

本試験は無料かつオンライン提供のため、好きなときに何度でも受験することができます。Pythonの知識や実務経験があまりない人でも、豊富な解説を理解しながら問題を繰り返し解いていくことで、確かな実力を効率よく身につけることができます。

また本試験で学習した内容は、以下のような有料試験やその他試験でも役立てることができます。

【Pythonエンジニア認定試験】
一般社団法人Pythonエンジニア育成推進協会が主催している試験です。「Python3 エンジニア認定基礎試験」「Python 3 エンジニア認定データ分析試験」「Python 3 エンジニア認定実践試験」の3つの試験区分があります。1つ目は基本的な文法知識、2つ目は統計・数学知識や関連ライブラリを含めたPython知識、3つ目は実践的なプログラミング知識が出題範囲となっており、日本国内では一番有名な試験といえるでしょう。(公式サイトリンク

【Python Institute Certification】
Python Instituteが主催している試験です。こちらもいくつか試験区分があり、試験によって出題範囲や難易度が異なります。ただし、出題言語は英語かスペイン語のみなので、外国語が苦手な人は注意しましょう。(公式サイトリンク

HTMLタグ理解度テストもオススメ

Webプログラマ向けに、Webプログラミングの基本中の基本であるHTMLタグ理解度テストが作成されました!こちらもほうもぜひ受験してみてください。