python 3 エンジニア認定基礎試験 模擬問題解説 DIVE INTO EXAM


Q.クリーンアップ動作を定義してあるオブジェクトに対して、クリーナップ動作を保証した形で利用するための構文で適切なものを選びなさい。

A.①together ← 存在しない
 ②follow ← 存在しない
 ③open ← ファイルの作成、書き込み、読み込み、追記、保存等を行う関数 ※
 ④with ← 正解

<備考>
※open(ファイル名, モード、エンコーディング)
 モード:'w' 書き込み用に開き、既存ファイルがある場合は上書き
     'a' 書き込み用に開き、既存ファイルがある場合は末尾に追記
     'x' 書き込み用に開き、既存ファイルがある場合は「FileExistsError」
     'r' 読み込み用に開く
     '+' 更新用に開き、 読み書き両方を指定
     't' テキストモード
     'b' バイナリモード
     'U' ユニバーサル改行モード (非推奨)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Q.utf-8とは?

A.世界的に最もポピュラーな文字コードで、Unicode用の符号化方式の1つ
 ASCIIで定義している文字を、Unicodeでそのまま使用することを目的として制定

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Q.例外の処理の説明として誤っているものを選択肢から選びなさい。

A.①else節は全てのexcept節より前でなければならない ← 誤り(正:else節は全てのexcept節より後ろ)
 ②最初にtry節が実行される ← 正解
 ③try節の実行中に例外が発生すると、try節中の残りはスキップされる ← 正解 ※1
 ④例外の型がexcept節にある名前と一致しない場合、送出された例外はさらに外側にあるtry文に渡される ←正解 ※2

<備考>
※1.try節の実行中に例外が発生してexcept節でキャッチした場合は、else節の処理は実行されない
※2.例外の型がexcept節にある名前と一致しない場合、創出された例外はさらに外側にあるtry文に渡される(try文が入れ子になっている場合)
 ハンドラ(handler、処理部) が見つからない場合、処理されない例外(unhandled exception)となり、エラーメッセージを出して実行を停止

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Q.構文的に文が必要なのに、プログラム的には何もする必要がないときに使う構文を選びなさい。

A.①pass ← 正解
 ②Through ← 存在しない
 ③nothing ← 存在しない
 ④idle ← 構文ではない(ツール※)

<備考>
※Pythonをインストールした際に利用できるようになる「統合開発及び学習環境」というツール(正しくはIDLE)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Q.リストから、引数の値(x)の最初のアイテムを削除するメソッドを選びなさい。

A.①list.remove(x) ← 正解:要素を直接指定して削除する ※1
 ②list.delete(x) ← 存在しない ※2
 ③list.move(x) ← ファイルを移動する
 ④list.clear(x) ← リスト内の全ての要素を削除する

<備考欄>
※1.要素が重複している場合は、最初の要素だけ削除
※2.del : 指定した範囲にある要素を削除することができる
(例)del リスト [開始位置:終了位置:ステップ]
 pop() : インデックス番号で要素を削除する(引数を空にすると末尾の要素を削除)
(例)リスト.pop(インデックス番号)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Q.Pythonの対話型インタプリタの中で存在するものを選択肢の中から選びなさい。

A.①ZPython ← 存在しない
 ②IPython ← 正解:Pythonの拡張された対話型シェル
 ③PythonI ← 存在しない
 ④JpythonF ← 存在しない ※

<備考>
※Jython(旧称JPython)は、プログラミング言語PythonのJavaで書かれた実装

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Q.問題文のプログラムを実行した場合の、出力結果を選びなさい。

print("出力結果:")
try:
  raise Exception("開始前","Exception発生")
  print("開始")
except IOError as msg:
  print("IOError発生:",msg.args[0])
except Exception as msg:
  print("予期せぬ問題発生:",msg.args[1])
else:
  print("Else表示")

A.①出力結果:予期せぬ問題発生:開始前
 ②出力結果: IOError発生:開始前”
 ③出力結果:予期せぬ問題発生: Exception発生 ← 正解
 ④出力結果:予期せぬ問題発生:開始前 Exception発生 Else表示 ※1

<備考>
※asを使うと別名で定義してモジュールを使うことが出来る
※1.else は例外が起こらなかった時に通る処理
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Q.コンパイル済Pythonファイルの拡張子を、選択肢の中から選びなさい。

A.①pyc ← 正解:Pythonのバイトコンパイル済ファイルの拡張子 ※
 ②cl ← 存在しない
 ③py ← Pythonのソースコードの拡張子
 ④class ← クラス

<備考欄>
※バイトコンパイルとは…
.pycファイルを作っておいて、対応する.pyファイルが更新されるたびに.pycファイルを上書きして実行します。この.pycファイルがバイトコンパイルされたファイルになります。バイトコンパイルをすることで実行するまでの速度が速くなります。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Q.対話モード時に、最後に表示した式を格納している変数を選びなさい。

A.①変数:-(ハイフン) ← 役割なし
 ②変数:#(シャープ) ← 役割なし
 ③変数:^(ハット) ← 役割なし
 ④変数:_ (アンダーバー) ← 正解 ※

<備考>
※(例)

>>> 1 + 2
3
>>> _
3

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Q.ビルドイン関数dir()についての適切なものを選びなさい。

A.①モジュールが定義している名前を確認することができる。 ← 正解
 ②モジュールを配置するディレクトリの一覧を確認することができる。 ← 不明
 ③モジュールで定義されている関数の一覧を表示することができる。 ← dir(builtins)
 ④モジュールで定義されている変数の一覧を表示することができる。 ← 不明

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Q.バイナリデータレコードの処理を行うモジュールを選択肢の中から選びなさい。 ※

A.①struct ← 正解
 ②data ← 存在しない
 ③binary ← 存在しない 
 ④bin ← 存在しない

<備考>
※バイナリファイルとは…
「テキストファイル以外のファイル」のこと
音楽データやビデオデータ、プログラムの実行ファイル、プログラムが独自のフォーマットで保存するデータファイルなど、バイナリファイルに保存されるデータは数は多い

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Q.下のユーザー定義例外について正しいものを選びなさい。

class MyError(Exception):
    def __init__(self, value):
        self.value = value
    def __str__(self):
        return repr(self.value)

A.①このユーザー定義例外は、Exceptionクラスのデフォルトのinitをオーバーライドしている。 ← 正解
 ②このユーザー定義例外では.args属性は存在しない。
 ③このユーザー定義例外を直接プリントしても値は返ってこない。
 ④このユーザー定義例外の.value属性はタプルである。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Q.

A.①
 ②
 ③
 ④

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー