Python 3 エンジニア認定基礎試験 問題集

一般社団法人Pythonエンジニア育成推進協会 Python 3 エンジニア認定基礎試験 対策公式出題範囲 主教材『Pythonチュートリアル』第4版(Python 3.9 公式ドキュメント)準拠

Python 3 エンジニア認定基礎試験の日本語問題集。全180問に解説つき。

Python 3 エンジニア認定基礎試験 無料問題 8 / 10 ・ 分野8: 8章 エラーと例外

次のコードを実行したときの表示はどれか。 def f(s): r = 0 try: r = int(s) r = r + 1 except ValueError: r = r - 1 return r 10 print(f('x'), f('4'))

  1. -10 40
  2. 0 50
  3. 0 40
  4. -10 50
正解と解説を見る

正解: D

正解の理由
try 文は、まず try 節を実行する。例外が発生しなければ except 節をスキップして try 文の実行を終える。try 節の実行中に例外が発生すると、その節の残りは飛ばされ、例外の型が except の後の例外に一致すれば except 節が実行される。f('x') では int('x') が ValueError を送出するので r は 0 のまま、r = r + 1 は飛ばされ、except 節で -1 になり、-10 が返る。f('4') では例外が起きず、r は 4 から 5 になり、except 節はスキップされて 50 が返る。表示は -10 50 になる。

違う選択肢
「0 50」… 例外が起きた後も try 節の残りの r = r + 1 が実行されると読んだ場合の結果(r が 1 になってから except 節で 0 に戻る)。例外が発生した時点で、try 節の残りは飛ばされる。
「-10 40」… 例外が起きなかったときも except 節が実行されると読んだ場合の結果(f('4') で r が 5 から 4 に戻る)。何も例外が発生しなければ、except 節はスキップされる。
「0 40」… try 節の残りが実行され、しかも例外が無くても except 節が実行されると、2つを重ねて読んだ場合の結果。

押さえどころ
try 節には例外が起きうる処理だけを置き、例外が起きたときの処理を except 節に書く、という分け方がこの流れを前提にしている。

Python 3 エンジニア認定基礎試験の演習アプリ(無料10問・全問は解錠で)へ

問題集(note)を見る