Python入門 条件分岐 if文を徹底解説! 初学者向けに図解で解説してます!

Python

Pythonの基本構文であるPythonの条件分岐 if文に関して、現役エンジニアである筆者が解説いたします。分かりやすく説明できるように心がけ、理解を助ける図解を用いて説明しました。

この記事を読めば、Pythonの条件分岐 if文 を網羅している内容を学べると思います。下記目次から該当の項目に飛べます!

条件分岐 if文、else、elifの書き方

if文の書き方

プログラミングでは、「ある条件に当てはまるときだけこの処理を実行したい」という場面がたくさん出てきます。日常生活でも同じだとおもうのですが、そういった時に使う基本文法が、条件分岐と呼ばれるテクニックです。

上記の例では、お金が5万円あるので、焼き肉に行きたいみたいですね。ではこの場合をプログラムに置き換えてみましょう。

Python
# 所持金として変数「 money 」を用意
  money = 50000

  if money == 50000:
    print("お金が5万円あるので焼き肉に行く")
# 実行結果
お金が5万円あるので焼き肉に行く

このような形で、条件に一致した場合のみ、処理を実行する事が出来るのが「 if文 」です。では上記の例で5万円ではなく所持金が0円だった場合はどんな結果になるでしょうか。

Python
# 所持金として変数「 money 」を用意
money = 0

if money == 50000:
    print("お金が5万円あるので焼き肉に行く")
# 実行結果

条件に一致しないため、実行結果は何も表示されませんでした。

if文のルール

if文を書く場合は、おさえておかなければいけないルールがあります。Pythonはコードの範囲の区別(スコープという)をインデント(半角スペース1つの意味)で判断しています。

if文を書く際は、処理部分の記述を書くときインデントを「 4つ分 」空ける必要があります。このインデントによって、if文の条件部分なのか、処理部分なのかを判別しています。

そして、忘れがちなのはif文の条件文の後ろに「 コロン 」を記述する事です。

if文の代表的なエラー

守らないと以下のようにエラーになってしまいます。以下はコロンを記述忘れた場合です。ちなみに「 SyntaxError 」は簡単に言うと構文エラーです。タイプミスなどでも良く目にするエラーです。

Python
money = 50000

if money == 50000
    print("お金が5万円あるので焼き肉に行く")
# 実行結果
  if (money == 50000)
                    ^
SyntaxError: invalid syntax

以下は、インデントのルールを守らなかった場合です。

Python
money = 50000

if money == 50000:
print("お金が5万円あるので焼き肉に行く")
# 実行結果
    print("お金が5万円あるので焼き肉に行く")
    ^
IndentationError: expected an indented block
elseの書き方

上記が主なif文の使い方でしたが、これではお金が無い場合の処理が書けませんね。その時のために使うのが「 else 」です。

では、上記をプログラムにしてみましょう。

Python
money = 10000

if money >= 10000:
    print("ゲームに課金する")
else:
    print("諦める")
# 実行結果
ゲームに課金する

Python
money = 1000

if money >= 10000:
    print("ゲームに課金する")
else:
    print("諦める")
# 実行結果
諦める

これでお金が無い時の処理を実装することができました。

elifの書き方

上記を見て、プログラムを作成しようと考えると、ちょっと複雑に見えると思います。この場合は「 elif 」を使用して実装します。

Python
money = 21000

if money >= 20000:
    print("彼女にプレゼントが買える!!飲み会もいける!")
elif money >= 10000:
    print("彼女にプレゼント買えない。飲み会はいける!")
else:
    print("飲み会もいけない。")
# 実行結果
彼女にプレゼントが買える!!飲み会もいける!

Python
money = 15000

if money >= 20000:
    print("彼女にプレゼントが買える!!飲み会もいける!")
elif money >= 10000:
    print("彼女にプレゼント買えない。飲み会はいける!")
else:
    print("飲み会もいけない。")
# 実行結果
彼女にプレゼント買えない。飲み会はいける!

Python
money = 9999

if money >= 20000:
    print("彼女にプレゼントが買える!!飲み会もいける!")
elif money >= 10000:
    print("彼女にプレゼント買えない。飲み会はいける!")
else:
    print("飲み会もいけない。")
# 実行結果
飲み会もいけない。
論理演算子を条件式で使用する

論理演算子を使用して条件を指定する事も出来ます。論理演算に関しては以下の記事で解説していますので、分からない場合はこちらをご覧ください。

andを使用したif文

それでは、論理演算子である「 and 」を使用して、if文を書いてみます。変数「 num 」に数値を代入し、その数値が範囲内であれば、処理を実行するというプログラムを書いていきます。

Python
num = 15

# すべての条件が成り立つ場合にのみ処理を行う(変数numの値が11~29)
if 10 < num and num < 30:
    print("変数numは10より大きく、30より小さいです!")
# 実行結果
変数numは10より大きく、30より小さいです!
orを使用したif文

次に「 or 」を使用したif文を作成していきます。下記は変数「 num 」の値がifの条件式に一つでも一致すれば「 True 」となり処理が実行されるプログラムです。

Python
num = 10

# 1つでも条件が成り立てば処理を行う(変数numの値が10または30)
if num == 10 or num == 30:
    print("変数numは10または30です")
# 実行結果
変数numは10または30です
入れ子構造のif文

入れ子構造になっているif文に関して解説していきます。入れ子構造とは、if文の中にif文を書くことを言います。それでは、以下の要件に従ってプログラムを書いていきます。

Python
fruits_available = True  # フルーツ盛り合わせがある場合はTrue、ない場合はFalseとして設定する
fruit_set_price = 1800  # フルーツ盛り合わせの価格を設定する

if fruits_available:
    print("フルーツ盛り合わせがあるので買いたいと思います。")
    
    if fruit_set_price < 2000:
        if fruit_set_price <= 1000:
            print("フルーツ盛り合わせの価格が1000円以下なので2つ買います。")
        else:
            print("フルーツ盛り合わせの価格が2000円未満なので1つ買います。")
    else:
        print("フルーツ盛り合わせの価格が2000円以上なので買いません。")

else:
    print("フルーツ盛り合わせがないので買いません。")
# 実行結果
フルーツ盛り合わせがあるので買いたいと思います。
フルーツ盛り合わせの価格が2000円未満なので1つ買います。
何も処理を実行しない「 pass 」

処理部分に「 pass 」と記述する事で、if文の条件式に一致している場合でも、何も処理されないでプログラムが終了します。

Python
pa = 55

if pa == 55:
    pass
# 実行結果

ちなみに「 pass 」も何も書かない場合はエラーになります。

Python
pa = 55

if pa == 55:
# 実行結果
 File "b.py", line 11

        ^
SyntaxError: unexpected EOF while parsing
ループ中に適用できるif文1「 continue 」「 break 」

for文などのループ中のみに適用できるのが「 continue」「 break 」です。

プログラムを中断させる break 文

「 break 」は条件に一致した場合に、ループ処理を止めるif文です。以下の例は、for文で数値「 1 ~ 5 」まで出力するプログラムですが、「 break 」の条件である「 3になったら終了 」により、プログラムを止めています。明示的にプログラムを中断したい場合に使用します。

Python
atas = [1, 2, 3, 4, 5] 

for data in range(datas[0], datas[4] + 1):
    print(data)
    if data == 3:
        print("dataが3になったので終了します")
        break
# 実行結果
1
2
3
dataが3になったので終了します
プログラムをスキップする continue文

「 continue」は、for文などのループ中に使用できるif文で、条件に一致した場合、処理をスキップする事が出来ます。明示的に処理をスキップさせてい場合に使用します。

Python
datas = [1, 2, 3, 4, 5] 

for data in range(datas[0], datas[4] + 1):
    print(data)
    if data == 3:
        print("dataが3なのでスキップします")
        continue
# 実行結果
1
2
3
dataが3なのでスキップします
4
5
if文を1行で書く場合

if文を1行で書くことも出来ます。しかし、現場では読みやすいコードが求められるため、簡略化したコードはあまり歓迎されない傾向にある事は念頭に置きましょう。

Python
num_1 = 10
num_2 = 10

print("true") if num_1 == num_2 else print("false")
# 実行結果
true

以上となります。お読みいただきありがとうございました。

コメント