3つの制御構造の学習
処理の流れは「順次」「分岐」「反復」の3つの構造の組み合わせで構成されます。
Pythonプログラミングの練習として,実際にソースコードを記述して制御構造を学習しましょう。
前の記事 順次処理の例
Python 処理の流れを学ぶためのプログラム例 - 勉強ボックス管理者ブログ
次の記事 反復の例
Python 処理の流れを学ぶためのプログラム例(反復) - 勉強ボックス管理者ブログ
分岐(条件分岐)
if文
分岐を行いたいときは,if文を使います。
if 条件式 :
条件式が真の場合の処理
else:
条件式が偽の場合の処理
※if節,else節の範囲を示すブロックは,半角空白4個で字下げすることで指定します。
分岐のソースコードを入力して,実行してみましょう。
ここでの条件式は「 0 < b 」で「変数bの値が0より大きい」となります。
b = input("base=") b = float(b) h = 7 if 0 < b : area = b * h / 2 print(area) else: print("0または負の数です")
実行結果
※正の数値を入力した場合
base=10
35.0
※負の数値を入力した場合
base=-10
0または負の数です
ifの固まりのみ(elseの無い形)でも記述できます。また,字下げで指定するブロックは,行が空いていても有効です。
print("==== 2-1 ====") a = 1 if a > 5 : print("aは5より大きい") a = 20 print("ここもif節の中") print(a)
実行結果
==== 2-1 ====
1
※ 2行目を a = 10 にすると
==== 2-1 ====
aは5より大きい
ここもif節の中
20
ifとelseの間に elif で複数の分岐を作ることができます。(他のプログラミング言語に見られる else if の書き方でも可)
if 条件式1 :
条件式1が真の場合の処理
elif 条件式2 :
条件式2が真の場合の処理
elif 条件式3 :
条件式3が真の場合の処理
else:
全ての条件式が偽の場合の処理
elifを使って,3つの処理に分岐するコードを記述してみましょう。
print("==== 2-2 ====") a = 20 if a == 10 : print("aは10") elif a > 10 : print("aは10より大きい") else: print("aは10より小さい") print(a)
条件式「 a == 10 」は「変数aの値と10とが等しい」の記述で,イコールを2つ続けています。イコールの記号1つだけのときの代入「a=10」とは異なることに注意してください。
実行結果
==== 2-2 ====
aは10より大きい
20
条件式は文字列の比較も記述できます。
print("==== 2-3 ====") item = "apple" if item == "apple" : print("apple!") else: print("not apple")
実行結果
==== 2-3 ====
apple!
※ item = "banana" にすると
==== 2-3 ====
not apple
関連記事
前の記事 はじめに 順次処理の例
Python 処理の流れを学ぶためのプログラム例 - 勉強ボックス管理者ブログ
【次の記事】 反復(くりかえし)
Python 処理の流れを学ぶためのプログラム例(反復) - 勉強ボックス管理者ブログ