Python 処理の流れを学ぶためのプログラム例(分岐)

3つの制御構造の学習

 処理の流れは「順次」「分岐」「反復」の3つの構造の組み合わせで構成されます。
 Pythonプログラミングの練習として,実際にソースコードを記述して制御構造を学習しましょう。


 前の記事 順次処理の例
 Python 処理の流れを学ぶためのプログラム例 - 勉強ボックス管理者ブログ


 次の記事 反復の例
 Python 処理の流れを学ぶためのプログラム例(反復) - 勉強ボックス管理者ブログ

ソースコード印刷用ファイル

 順次,分岐,反復,配列,関数のソースコード例です。
 Pythonプログラミング練習1_基本.pdf - Google ドライブ


分岐(条件分岐)

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


条件式の例(比較演算子

 条件式の例を以下に示します。成り立つ(真)か成り立たない(偽)かで判定されます。

条件式説明
a > b a が b より大きい
a < b a が b より小さい
a >= b a が b 以上
a <= b a が b 以下
a == b a と b が等しい
a != b a と b が等しくない

 条件式は「反復」の処理を記述するときにも使うので,色々ソースコードを書き換えて使い方を学習しましょう。