Python 模擬試験

PythonZen & PEP 8 模擬試験 第5回 問9・PEP 8 コードのレイアウト(インデント)

辞書リテラルのぶら下げインデント

複数行にわたる辞書リテラルを、開き括弧の直後に要素を置かない形で書くとき、PEP 8 に沿った書き方として、最も適切なものを1つ選べ。

  1. A

    開き括弧の後で改行せず、2 行目以降をインデントせずに、行頭からそろえる。

  2. B

    すべての要素を、閉じ括弧の位置と同じ深さにそろえる。

  3. C

    要素ごとに、インデントの深さを変える。

  4. D

    開き括弧の後で改行し、要素をインデントして 1 行ずつ書き、閉じ括弧は、文の先頭の位置にそろえる。

正解と解説を見る

正解:D

ぶら下げインデントは、開き括弧の後ろで改行し、要素をインデントする。閉じ括弧は、要素の深さか、文の先頭にそろえる。

PEP 8 のインデントと継続行の規則。
項目規則
インデントの幅1段階につき空白4つ
タブと空白空白を使う。混在させない(Python 3 ではエラーになる)
括弧内の改行開き括弧の位置にそろえる、またはぶら下げインデントにする
ぶら下げインデント開き括弧の後ろには何も書かず改行し、次の行からインデントする(引数を1行目に置かない)
長い条件のif本文と区別できるよう、継続行を深くインデントするなどの工夫をする

学習のポイント:要素を 1 行に 1 つずつ書くと、差分が見やすい。

この問題を演習で解く →

問題一覧へ

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