【図解で詳解】Pythonの基礎文法(条件分岐構文 if文句)

スポンサーリンク
Pythonの基礎文法(条件分岐編) Python

Pythonの基礎文法を図を用いて分かりやすく解説していきます。

今回は条件分岐をする機能を提供するif文句」を解説しますif文はどのようなプログラミング言語でも必ず使われますので既にご存じの方も多いかと思いますが、Python特有の規則もありますので、基本を説明しつつも他言語との違いについても取り上げます。

Pythonの公式ドキュメントは以下になりますので必要に応じて参照してください。

Python公式ドキュメントの引用

https://docs.python.org/ja/3/reference/compound_stmts.html#the-if-statement
スポンサーリンク

1. 条件分岐構文(if文句)

Pythonの条件分岐構文であるif文句は大きく3つに大別されます。

1.1 ifによる条件分岐 < if構文 >

if文の最も単純な使い方で、条件式が真(True)の時にif句ブロック内のステートメントが実行される流れです。構文とフローチャートは次のようになります。

ifの書式
ifの書式_フローチャート
図1 if文句

サンプルコードは次のとおりです。ポイントは、変数valueの値の正負判定を行い正数の場合にif句内の処理(value×10)が行われます。負数の場合はスルーされます。

value = 1

if value > 0 :
    value = value * 10 # 条件式がTrueとなるのでこのステートメントが実行される
print(value)           # 10と表示(計算される)

#------------------------------------------------------------------------------------------------
value = -1

if value > 0 :
    value = value * 10  # 条件式がFalseとなるのでこのステートメントが実行されない
print(value)            # -1と表示(初期値のまま)

1.2 ifによる条件分岐 < if-else構文 >

1.1項に加えif文の条件式が偽(False)判定となった時にも処理するステートメントelse句を記述するパターンです。構文とフローチャートは次のようになります。

ifの書式2
ifのフローチャート2
図2 if/else文句

サンプルコードは次のとおりです。ポイントは、変数valueの値の正負判定を行い正数の場合にif句内の処理(value×10)が行われます。また、負数の時はelse句が処理(0で初期化)が行われます。

value = 1

if value > 0 :
    value = value * 10 # 条件式がTrueとなるのでこのステートメントが実行される
else:
    value = 0
print(value)           # 10と表示(if句の計算結果が反映される)

#-------------------------------------------------------------------------------------------------
value = -1

if value > 0 :
    value = value * 10
else:
    value = 0    # 条件式がFalseとなるのでこのステートメントが実行される
print(value)     # 0と表示(else句の計算結果が反映される)

1.3 ifによる条件分岐 < if-elif-else構文 >

1.2項に条件式が多段構成になった構文です。elif句は1つである必要はなく分岐させる条件の数だけ追加することができます。条件式は上から順番に判定され、はじめに真(True)となったブロックの処理が実行される流れとなります。どの条件式も偽(False)となった場合にelse句の処理が実行されます。またelse句は省略することもできます。

ifの書式_フローチャート3
ifの書式_フローチャート3_2
図3 if/elif/else文句

サンプルコードは次のとおりです。ポイントは、変数inputの条件判定がif句とelif句の2回にわたり判定が行われます。より細かい条件で処理を分岐させることができるようになります。

input = 70

if input >= 80 :
    output = 'A'   # 条件式がFalseなのでこのステートメントは評価されない
elif input >= 60 :
    output = 'B'   # 条件式がTrueなのでこのステートメントは評価されて、if文を抜ける
else:
    output = 'C'
print(output)      # Bと表示される
#-------------------------------------------------------------
# <その他の結果>
# input = 80 の場合は 'A'と表示される
# input = 50 の場合は 'C'と表示される
スポンサーリンク

2. その他の条件分岐構文

Python_基本文法_内包表記

他言語にはないPython特有の規則について以下にまとめます。

2.1 case文による分岐方法

多くのプログラミング言語にはswitch文case文を使って処理を振り分ける構文が用意されていると思いますが、残念ながらPythonでは使えません。ですので、1.3項のif/elif/else文や、if文のネスト構造をつかって処理を振り分ける必要があります。

2.2 < if-else構文 >を1行記述する

f/else文を1行で記述することができます。Pythonを特徴付ける書き方の例で、スマートに記述できるため多用されます。一見複雑に見えますが、フロー自体は単純で、条件式が真(True)であれば処理Aが評価され、条件式が偽(False)であれば処理Bが評価し結果を戻します。

処理A,Bの場所には基本的には(※)単文(1つのステートメント)のみ記述することができます

下記の書式では左辺の変数へ結果を戻していますが、直接関数の引数やリスト・タプルなどなどの要素に記述することができます。

※ ,(カンマ)区切りで複数記述することができますが結果はタプルとなります。

ifの書式_フローチャート4
図4 if/ else句の単文記法

サンプルコードは次のとおりです。ポイントは、変数a, bの大小比較をしその結果次第で処理A(a×10)または、処理B(b×10)を実行し変数resultに戻します。

a = 5
b = 3
result = (a*10) if (a > b) else (b*10)    # 条件式がTrueとなるので処理Aが実行され結果が戻る
print(result) # 50と表示される
#-----------------------------------------------------------------------------------------------------------
a = 4
b = 6
result = (a*10) if (a > b) else (b*10)    # 条件式がFalseとなるので処理Bが実行され結果が戻る
print(result) # 60と表示される

以上、Pythonの基礎文法として条件分岐構文のif文の使い方の概要を説明しました。

最後までお読みいただきありがとうございました。

タイトルとURLをコピーしました