Python 模擬試験

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

関数定義の長い引数

関数の定義の引数が長く、複数行に分ける必要があるとき、PEP 8 が勧める書き方として、最も適切なものを1つ選べ。

  1. A

    継続行を、本体と同じインデントにして、見分けがつかないようにする。

  2. B

    継続行のインデントを、関数の本体のインデントと区別できるよう、追加で深くする(たとえば、空白 8 つ)。

  3. C

    引数を、1 文字ごとに改行して書く。

  4. D

    関数の定義は、何があっても、1 行に収めなければならない。

正解と解説を見る

正解:B

関数定義の引数が複数行になるときは、継続行のインデントを深くして、本体と区別する。開き括弧の直後に引数を置くなら、引数をそろえる。

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

学習のポイント:引数が多すぎるときは、設計を見直す。

この問題を演習で解く →

問題一覧へ

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