Menu
Coddy logo textTech

ネストされた If - Else

CoddyのPythonジャーニー「Fundamentals」セクションの一部 — レッスン 23/77。

入れ子になった(ネストされた)If-Else文を使用すると、あるif-else文を別のif-else文の中に配置することで、複数の条件をチェックできます。elseブロックの中にifブロックを入れ子にすることができます。これはPythonにおいて一般的で有効なパターンです。

基本的なif-else文を作成します:

age = 18
title = "None"
if age >= 18:
    title = "Adult"
else:
    title = "Minor"

次に、elseブロックの中にネストされた条件を追加しましょう:

age = 18
title = "None"
allowed_to_drink = False
if age >= 18:
    title = "Adult"
else:
    title = "Minor"
    if age >= 13:
        title = "Teenager"
    else:
        title = "Child"

また、if ブロックの中に条件をネスト(入れ子に)することもできます:

age = 25
title = "None"
allowed_to_drink = False
if age >= 18:
    title = "Adult"
    if age >= 21:
        allowed_to_drink = True
    else:
        allowed_to_drink = False
else:
    title = "Minor"

両方の例において、内側の if-else は、それを含む外側の条件が満たされたときにのみ実行されます。else ブロックの中(または if ブロックの中)に if 文を配置することは完全に有効であり、これこそが「ネスト(入れ子)」と呼ばれる理由です。

challenge icon

チャレンジ

初心者

年齢と保護者の同伴に基づいて、映画の視聴資格を判定するプログラムを作成してください。

提供されたコード(変更しないでください):

  1. 変数 age が定義され、入力から値が代入されます。
  2. 変数 with_parent が定義され、boolean 値が代入されます。入力が "true" の場合は True、入力が "false" の場合は False になります。
  3. 変数 message"None" という値で定義されています。

あなたのタスク:
入れ子(ネスト)になった if-else 文を使用して、message 変数に以下のいずれかの文字列を設定してください。

  1. 年齢が18歳以上の場合は、message"You can watch any movie" に設定します。
  2. 年齢が18歳未満の場合:
    1. with_parentTrue の場合は、message"You can watch PG-13 movies" に設定します。
    2. with_parentFalse の場合は、message"You can only watch G-rated movies" に設定します。

重要: with_parent はすでに boolean 型であるため、直接チェックしてください(例: if with_parent:)。"true""True" といった文字列と比較してはいけません。

重要: 文字列は、大文字・小文字や句読点を含め、完全に一致させる必要があります。例えば、"PG-13 movies"(小文字の 'm')を使用し、"PG-13 Movies" とはしないでください。

チートシート

入れ子になった(ネストされた) if-elif-else 文を使用すると、階層的な意思決定が可能になります。

if condition1:
    if condition2:
        # 両方の条件が真の場合のコード
    else:
        # condition1 は真だが condition2 が偽の場合のコード
else:
    # condition1 が偽の場合のコード

入れ子になった条件の例:

if age > 18:
    if has_license:
        print("You can drive")
    else:
        print("Get a license first")
else:
    print("Too young to drive")

ネストは無限に深くすることができ、複雑な決定木を作成することが可能です:

if condition1:
    if condition2:
        if condition3:
            # さらにネストされた条件...

自分で試してみよう

# 年齢を整数として取得する
age = int(input())

# 保護者の同伴をブール値(True/False)として取得する
with_parent = input() == "true"

# messageという名前の変数を"None"で宣言する
message = "None"

# ここにネストされたif-elseコードを記述してください


# これより下の行は変更しないでください
print(message)
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Fundamentalsのすべてのレッスン