Python 模擬試験

Python実践 模擬試験 第6回 問39・17章 デバッグ(warnings)

同じ警告の表示回数

次のコードを実行したときの出力として、正しいものを1つ選べ。

import warnings
with warnings.catch_warnings(record=True) as w:
    warnings.simplefilter("once")
    for _ in range(3):
        warnings.warn("x")
print(len(w))
  1. A

    1

  2. B

    3

  3. C

    0

  4. D

    2

正解と解説を見る

正解:A

フィルタのアクションは、default(場所ごとに 1 回)・always・once(全体で 1 回)・ignore・error・module。ループの中の警告が、何度も表示されるのを避けられる。

順実行する行実行後の変数
1`import warnings`—
2`with warnings.catch_warnings(record=True) as …`w = []
3`warnings.simplefilter("once")`—
4`for _ in range(3):`—
5`warnings.warn("x")`—
6`for _ in range(3):`—
7`warnings.warn("x")`—
8`for _ in range(3):`—
9`warnings.warn("x")`—
10`for _ in range(3):`—
11`with warnings.catch_warnings(record=True) as …`w = [<WarningMessage {message : UserWarning…
12`print(len(w))`w = [<WarningMessage {message : UserWarning…
結果実際の出力1

学習のポイント:-W オプションや環境変数でも設定できる。

この問題を演習で解く →

問題一覧へ

このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。