2-1. Pythonのインデントとブロック

1. 命令文の終わりを改行で表す

Pythonのコードでは、命令文の終わりを改行で示しています。
日本語では読点「。」で文の終わりを表していますが、Pythonでは改行が文の終わりにあたります。
例えば、print文を2つ記述するときは、以下のように書きます。

print('これは1つ目のprint文です。')
print('これは2つ目のprint文です。')


そのため、以下のように改行を挟まないとエラーになります。

print('これは1つ目のprint文です。')print('これは2つ目のprint文です。')

2. プログラムのまとまりをインデントで表す

インデントとは、命令文の先頭につけるスペース・タブのことです。

Pythonのコードでは、プログラムのまとまりをインデント(タブかスペース4つ)で表します。
必要な箇所にインデントがないとエラーになり、不必要な箇所にインデントがあるとエラーになります。


例えば、プログラムで書かれた処理をひとまとまりに定義する def文 があります。
(def文の詳細な書き方については、この後の章で説明します。)
def文を使うときは、そこで定義する処理のまとまりを書くとき、先頭にタブかスペース4つを入れて書きます。

def 1つ目の処理のまとまり():
    print('左にスペースが4つある。1行目。')
    print('左にスペースが4つある。2行目。')
    print('左にスペースが4つある。3行目。')

def 2つ目の処理のまとまり():
    print('左にスペースが4つある。1行目。')
    print('左にスペースが4つある。2行目。')
    print('左にスペースが4つある。3行目。')


上記のコードをみると、どこからどこまでが1つ目の処理のまとまり(関数)なのかが、一目でわかります。

しかし、print文ではインデントによってプログラムのまとまりを表すことはありません。
つまり、以下のようなコードはエラーになります。

print('まとまり1')
print('まとまり1')
print('まとまり1')

    print('まとまり2')
    print('まとまり2')
    print('まとまり2')

3. インデントで階層的なコードを書く

このインデントを深く(複数回使う)することで、階層的なコードを作ることができます。
以下のように、def文の中の処理のまとまりに、さらにdef文で処理のまとまりを作ることができます。

def 1つ目の処理のまとまり():
    print('左にスペースが4つある。1行目。')
    print('左にスペースが4つある。2行目。')
    print('左にスペースが4つある。3行目。')

    def 1つ目の中の処理のまとまり():
        print('左にスペースが8つある。1行目。')
        print('左にスペースが8つある。2行目。')
        print('左にスペースが8つある。3行目。')

        def 1つ目の中の中の処理のまとまり():
            print('左にスペースが12つある。1行目。')
            print('左にスペースが12つある。2行目。')
            print('左にスペースが12つある。3行目。')


このページではdef文の詳細な書き方についてこのページでは説明しませんが、インデントを何度も使うことで階層的にコードが書けることを覚えておきましょう。


このエントリーをはてなブックマークに追加