중첩 If - Else 문
Coddy Python 여정의 Fundamentals 섹션에 포함된 레슨 — 77개 중 23번째.
중첩된 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 문을 배치하는 것은 완전히 유효합니다 — 이것이 바로 "중첩(nested)"이라고 부르는 이유입니다.
챌린지
초급나이와 부모 동반 여부에 따라 영화 관람 자격을 결정하는 프로그램을 작성하세요.
제공된 코드 (수정하지 마세요):
- 변수
age가 정의되고 입력값이 할당됩니다. - 변수
with_parent가 정의되고 불리언(boolean) 값이 할당됩니다. 입력값이"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')를 사용하세요.
치트 시트
중첩된 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"
# "None"이라는 값으로 message 변수를 선언합니다
message = "None"
# 여기에 중첩된 if-else 코드를 작성하세요
# 이 줄 아래로는 수정하지 마세요
print(message)이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.