ネストされた If - Else
CoddyのPythonジャーニー「基礎」セクションの一部。レッスン 23/77。
ネストされた If-Else 文を使うと、1つの if-else 文を別の if-else 文の中に配置して、複数の条件を確認できます。if ブロックを else ブロックの中にネストできます。これは 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 文を配置することは、まったく有効です。これがまさに「ネストされた」状態です。
チャレンジ
初心者年齢と保護者の指導に基づいて、映画を視聴できるかどうかを判定するプログラムを書いてください。
与えられたコード(変更しないでください):
- 変数
ageが定義され、入力から値が代入されています - 変数
with_parentが定義され、ブール値が代入されています。入力が"true"の場合はTrue、入力が"false"の場合はFalseになります - 変数
messageが値"None"で定義されています
課題:
ネストした if-else 文を使用して、message 変数に次のいずれかの文字列を設定してください:
- 年齢が18歳以上の場合、
messageに"You can watch any movie"を設定します。 - 年齢が18歳未満の場合:
with_parentがTrueの場合、messageに"You can watch PG-13 movies"を設定します。with_parentがFalseの場合、messageに"You can only watch G-rated movies"を設定します。
重要: with_parent はすでにブール値なので、直接チェックしてください(例:if with_parent:)。"true" や "True" のような文字列と比較してはいけません。
重要:文字列は、大文字・小文字や句読点を含めて完全に一致させる必要があります。たとえば、"PG-13 Movies" ではなく、"PG-13 movies"('m' は小文字)を使用してください。
自分で試してみよう
# 年齢を整数として取得
age = int(input())
# 保護者の有無をブール値 (True/False) として取得
with_parent = input() == "true"
# 変数 message を "None" で宣言する
message = "None"
# ここにネストした if-else コードを書いてください
# この行より下は変更しないでください
print(message)このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ