파이썬 들여쓰기 규칙과 if/elif/else 조건 분기 완전 정복
이번 강에서 배울 것
- 파이썬 들여쓰기(indentation) 규칙 완전 이해
- if / elif / else 조건 분기 구조
- 중첩 조건문(Nested if)
- 단축 조건식 — 삼항 연산자
- 실전 프로젝트: 점수 등급 판정기
1. 조건문이란
조건문은 특정 조건이 참(True)일 때만 코드를 실행하도록 제어하는 구조입니다. 일상 생활에서 "만약 비가 오면 우산을 가져가자"와 같습니다. 파이썬에서는 if, elif, else 키워드를 사용합니다.
# 기본 if 구조
if 조건식:
실행할 코드 # 들여쓰기 4칸 필수!
# if-else 구조
if 조건식:
참일 때 실행
else:
거짓일 때 실행
# if-elif-else 구조 (다중 조건)
if 조건1:
조건1이 참일 때
elif 조건2:
조건2가 참일 때
elif 조건3:
조건3이 참일 때
else:
모두 거짓일 때
2. 기본 if 문
temperature = 35
if temperature >= 30:
print("더운 날씨입니다.")
print("에어컨을 켜세요.")
# 조건이 False면 if 블록 전체 건너뜀
temperature = 20
if temperature >= 30:
print("이건 출력 안 됩니다") # 실행 안 됨
print("항상 출력됩니다") # 들여쓰기 없으므로 조건 밖
# if-else
age = 17
if age >= 18:
print("성인입니다.")
else:
print("미성년자입니다.")
# → 미성년자입니다.
3. elif — 여러 조건 처리하기
score = 78
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
else:
grade = "F"
print(f"점수: {score}, 등급: {grade}")
# → 점수: 78, 등급: C
# 중요: elif는 위에서 아래로 순서대로 확인
# 처음으로 True인 조건만 실행되고 나머지는 건너뜀!
# 잘못된 예 (중첩 if vs elif 차이)
score2 = 95
# ❌ 이렇게 하면 중복 출력됨
if score2 >= 90:
print("A 이상")
if score2 >= 80:
print("B 이상") # 95는 80도 만족하므로 이것도 출력!
if score2 >= 70:
print("C 이상") # 이것도 출력!
# ✅ elif 사용 시 처음 만족하는 것만 출력
if score2 >= 90:
print("A 이상") # 이것만 출력
elif score2 >= 80:
print("B 이상") # 건너뜀
elif score2 >= 70:
print("C 이상") # 건너뜀
4. 중첩 조건문(Nested if)
# if 안에 또 다른 if를 넣을 수 있음
age = 25
has_membership = True
if age >= 18:
print("성인입니다.")
if has_membership:
print("멤버십 할인이 적용됩니다.")
discount = 0.2
else:
print("할인 없음")
discount = 0
else:
print("미성년자는 이용 불가합니다.")
# 중첩보다는 and로 합치는 것이 더 깔끔할 때가 많음
if age >= 18 and has_membership:
print("성인 멤버십 할인 적용")
# 문자열 비교
weather = "비"
if weather == "맑음":
print("외출 추천")
elif weather == "비":
print("우산을 챙기세요")
elif weather == "눈":
print("미끄러우니 조심하세요")
else:
print("날씨 정보 없음")
5. in 연산자 — 멤버십 확인
# in: 값이 목록/문자열에 포함되어 있는지 확인
fruits = ["사과", "바나나", "포도"]
print("사과" in fruits) # → True
print("수박" in fruits) # → False
print("수박" not in fruits) # → True
# 조건문에서 활용
day = "토요일"
if day in ["토요일", "일요일"]:
print("주말입니다!")
else:
print("평일입니다.")
# 문자열에서도 사용 가능
email = "user@example.com"
if "@" in email:
print("유효한 이메일 형식")
else:
print("이메일 형식 오류")
6. 삼항 연산자 (조건부 표현식)
# 파이썬 삼항 연산자: 참일때값 if 조건 else 거짓일때값
age = 20
status = "성인" if age >= 18 else "미성년자"
print(status) # → 성인
# 활용 예시
score = 85
result = "합격" if score >= 60 else "불합격"
print(result) # → 합격
x = 7
parity = "홀수" if x % 2 != 0 else "짝수"
print(parity) # → 홀수
# 단순한 조건에 유용, 복잡하면 일반 if-else가 더 읽기 쉬움
7. 실전: 점수 등급 판정기
print("=== 성적 등급 판정기 ===")
name = input("이름: ")
score = int(input("점수 (0~100): "))
if score < 0 or score > 100:
print("올바른 점수를 입력하세요 (0~100)")
elif score >= 90:
grade = "A"
comment = "최우수"
elif score >= 80:
grade = "B"
comment = "우수"
elif score >= 70:
grade = "C"
comment = "보통"
elif score >= 60:
grade = "D"
comment = "미흡"
else:
grade = "F"
comment = "불합격"
print(f"\n{name}님의 성적: {score}점 → {grade}등급 ({comment})")
# 입력: 김민준 / 85
# 출력: 김민준님의 성적: 85점 → B등급 (우수)
4강 핵심 요약
- if/elif/else: 위에서 아래로 순서대로 확인, 처음 True인 것만 실행
- 들여쓰기 4칸은 파이썬 필수 규칙 — 틀리면 IndentationError
- 여러 if는 모두 검사, elif는 첫 번째 True에서 멈춤
- in 연산자로 목록·문자열 포함 여부 간단히 확인
- 삼항 연산자: 값 if 조건 else 값 — 단순 분기에 유용
- 다음 강: 반복문 — for와 while로 같은 코드를 반복 실행하기
관련 검색어 · 파이썬조건문, if elif else, 파이썬if문, 중첩조건문, 삼항연산자파이썬, in연산자, 파이썬들여쓰기