ネストされた If - Else
CoddyのPythonジャーニー「基礎」セクションの一部。レッスン 23/77。
入れ子の If-Else 文を使うと、ある if-else 文の中に別の if-else 文を配置して、複数の条件を確認できます。else ブロックの中に if ブロックを入れ子にできます。これは Python でよく使われる正当なパターンです。
基本的なif-else文を作成します:
age = 18
title = ""
if age >= 18:
title = "Adult"
else:
title = "Minor"では、elseブロックの中にネストされた条件を追加しましょう。
age = 18
title = ""
allowed_to_drink = False
if age >= 18:
title = "Adult"
else:
title = "Minor"
if age >= 13:
title = "Teenager"
else:
title = "Child"ifブロックの中に条件をネストすることもできます。
age = 25
title = ""
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ブロック内のものはage >= 18が偽のときに実行され、ifブロック内のものはage >= 18が真のときに実行されます。elseブロック内(またはifブロック内)にif文を置くことは、まったく問題ありません。これこそが「入れ子」になっている理由です。
チャレンジ
初心者年齢と保護者の付き添いに基づいて、映画を鑑賞できるかどうかを判定するプログラムを書いてください。
注: age と with_parent は、各テストケースで異なる値がすでに設定されています。自分で設定せず、そのまま使ってください。
課題:
ネストした 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' は小文字)を使ってください。
自分で試してみよう
# ここにネストされたif-elseコードを書いてください
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ