【Python入門】複合文とブロックについて

Python
スポンサーリンク

 

プログラムが複雑になってくると、条件によって動作が変わるように処理させたいことが必ずあります。

もちろん Python でもそのような処理を使っていくことになります。

代表的な例として、

  • if 文
  • while 文
  • for 文

がありますね。

その他に、関数を定義する def などもあります。

このような構文を「制御フロー文」といいます。

今回は、この制御フロー文の定義方法の複合文とブロックについてまとめました。

[q3-adsense01]

スポンサーリンク

複合文とは

複合文とはこういう定義がされていました。

複合文とは他の文を内部に持ち、内部の文を実行するかどうかなどの制御をコントールするもの

具体的には「ヘッダ行」があり、それに付随する「文のまとまり」と併せたものを複合文といいます。

ヘッダ行

Python のヘッダ行は「:」(コロン)で終わります。

if a < b: #ヘッダ行

条件式には () [] {} を入れることも可能ですが、Python では基本的には付けません。

もし、ヘッダ行を改行したい時がある場合、これらを使って改行できます。

if ( a < b,
  and c < d,
  and e < f,
  and g < h ): # 複数行で書ける

ブロックとは

複合文の「文のまとまり」をブロックといいます。

ブロックのまとめ方は、言語によってさまざまです。

ヘッダ {  }
ヘッダ end

などがあります。

Python では、「インデント」でブロックを作っています。

 

[q3-adsense01]

ブロックを作るインデント

インデント(字下げ)によって、一つのブロックを表現します。

インデントの数は任意の個数でOKですが、同じブロックに含まれる文は同じインデントの数である必要があります。

インデントはスペースでもタブでもOKです。

ヘッダ行: # スペース2つでインデントを表現
  処理文1 # ブロック開始
  処理文2 # ブロック終了

別のインデントを持った文が出てきた時点で、ブロックは終わります。

ヘッダ行: # スペース2つでインデントを表現
  処理文1 # ブロック開始
  処理文2 # ブロック終了
処理文3 # 複合文の処理から外れる

複合文の中に複合文を入れることもあります。

内側の複合文に含まれるブロックは、内側の複合文のヘッダに対してインデントします。

ヘッダ行1: # スペース2つでインデントを表現
  処理文1 # ブロック1開始
  処理文2
  ヘッダ行2: # 複合文の中にいれる複合文
    処理文3 # ブロック2開始
    処理文4 # ブロック2終了
  処理文5 # ブロック1終了
処理文6 # 複合文の処理から外れる

Python では、プログラムの構造が見た目でわかりやすいですし、構文がよりシンプルに書くことが出来ます。

この複合文のルールを使って、次回より制御フロー文を見ていきましょう。

参考

3. 形式ばらない Python の紹介 — Python 3.6.5 ドキュメント

Python まとめページ

独学でPythonを覚えよう
今話題のプログラム言語「Python」を独学で勉強していく内容を、アウトプットします。僕が今回選んだ教材は、python.jp の Pythonチュートリアル です。このチュートリアルに沿って進んでいく予定です。言語は Pyth...

前回へ戻る

【Python入門】インタプリタでコマンドの続き(リスト編)
前回のコマンドの続きです。インタプリタを使って、簡単なコマンドを実際に入力してみて結果を確認してみましょう。

次回へ進む

【Python入門】制御フローツール if 文の使い方
今回からいくつかの制御フローツールを見ていきます。最初は、if 文です。if 文は処理を分岐するときに使います。ある条件の場合のみ処理を実行するときなどに使います。

 

[q3-adsense01]

コメント

  1. […] 【Python】複合文とブロックについて […]

  2. […] 【Python入門】複合文とブロックについて […]