Python 模擬試験

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

タブと空白の混在

Python 3 で、1 つのファイルの中でタブと空白をインデントに混在させたときの扱いとして、最も適切なものを1つ選べ。

  1. A

    Python は、タブも空白も区別せず、常に問題なく動作する。

  2. B

    インデントの一貫性が取れず、TabError などのエラーになることがある。PEP 8 は空白 4 つを推奨する。

  3. C

    タブと空白は、行ごとに自由に混ぜて使うのが推奨される。

  4. D

    インデントは、文法には関係なく、見た目だけの問題である。

正解と解説を見る

正解:B

Python 3 は、タブと空白の混在で、インデントが曖昧になる場合に TabError を出す。空白 4 つに統一する。

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

学習のポイント:pycodestyle・flake8 などで、検出できる。

この問題を演習で解く →

問題一覧へ

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