Python 模擬試験

Python実践 模擬試験 第3回 問6・3章 Pythonの言語仕様(内包表記)

条件式を含む内包表記

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

print([x if x % 2 else -x for x in range(4)])
  1. A

    [-0, 1, -2, 3]

  2. B

    [1, 3]

  3. C

    [0, -1, 2, -3]

  4. D

    [0, 1, -2, 3]

正解と解説を見る

正解:D

内包表記の if が前(A if 条件 else B)にあるときは条件式で、要素は除かれず変換される。後ろ(for ... if 条件)にあるときは、要素を絞り込む。

順実行する行実行後の変数
1`print([x if x % 2 else -x for x in range(4)])`—
結果実際の出力[0, 1, -2, 3]

学習のポイント:2 つの if の位置の違いを区別する。

この問題を演習で解く →

問題一覧へ

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