Pythonにおけるフロー制御|【Python・R・エクセル統計学・統計解析】
Pythonにおけるフロー制御
プログラムには、実行したい処理を実行したい順番に記述していきます。
処理の流れのことをフローと呼びます。
条件によって処理を分けたり、繰り返しを行ったりすることをフロー制御と呼びます。
フロー制御では、対象となるコードの「ここからここまで」という範囲を指示する必要があります。
プログラムの中で、どこからどこまでを条件によって実行したいのか、またはどの部分が関数に相当するのかを、プログラミング言語に分かるように指示する必要があります。
この指示する部分をブロックと呼びます。
Pythonでは、ブロックを表現するのにインデント(字下げ)を利用します。
ブロック表現にインデントを使うことが、Pythonの大きな特徴の1つとなっています。
このため、自然と読みやすいプログラムを書けるようになっています。
条件分岐(if文)
Pythonで条件分岐を行うにはif文を使います。
If文には、括弧などを添えず条件式を記述します。条件が真(True)のときに実行したいプログラムはインデントします。
If文の例
if year > 2000 and year<=2100:
print ”21st century”
else:
print “20th century (maybe)”
上記の例では数値の入った変数を使って条件分岐をしています。and や or と組み合わせると、論理式を使った条件分岐ができます。
elifの条件は、最初の条件が成り立たなかったときに評価されます。
Pythonにはswitch文がありません。
代わりにifとelifを組み合わせるとよいでしょう。
elseのブロックは、どの条件も成り立たなかったときに実行します。
if文に添える条件式には、==や<のように真偽値を返す比較演算子を使います。
Pythonでは、空の文字列や空のリスト、空の辞書などが偽(False)として扱われます。
要素のある文字列やリスト、辞書は真として扱われます。この性質を使うと、オブジェクトかどうかを手早く調べることができます。
シーケンスを使った繰り返し(for文)
Pythonで繰り返しをしたいときに利用するのがfor文です。
Pythonのfor文では、リストのようなシーケンスをinの後に添えて記述します。
シーケンスの内容を1つずつ取り出し、inの前にある繰り返し変数に代入しながらブロックの内部を処理していきます。
以下の例では、組み込み関数range()を使って0から9までのリストを生成して、ループブロック内のコードを実行します。
Pythonではブロックごとに名前空間が区切られません。
そのため、for文で定義した繰り返し変数や、ループブロックで定義した変数はfor文の後でも利用できます。
For文の例
for cnt in range(10): #0から9までの数を表示する
print cnt
条件を使った繰り返し(while文)
条件が成り立つときにだけループを実行したい場合にwhile文を使います。
While文には真偽値を返す式を添え、式が真の間だけ、ブロック内のコードを実行します。
While文の例
while cnt <10:
print cnt
cnt+=1
関連記事