반응형
조건문이 왜 필요한가요?
우리는 일상생활에서 항상 선택을 합니다. "비가 오면 우산을 가져가고, 맑으면 그냥 나간다" 이런 상황처럼 컴퓨터도 조건에 따라 다른 일을 해야 할 때가 있어요. 파이썬에서는 이런 상황을 if문으로 표현할 수 있습니다.
# 간단한 예시: 날씨에 따른 행동 결정
weather = "비" # 날씨 변수에 "비" 저장
if weather == "비": # 만약 날씨가 비라면
print("우산을 챙기세요") # 이 문장을 실행
else: # 그렇지 않다면
print("산책하기 좋은 날이네요") # 이 문장을 실행
실행 결과: 우산을 챙기세요
if문의 기본 구조 알아보기
if문은 다음과 같은 형태로 작성합니다:
if 조건:
실행할_내용1
실행할_내용2
else:
다른_실행_내용1
다른_실행_내용2
중요한 점들:
- if 뒤에는 반드시 콜론(:)을 붙입니다
- 실행할 내용은 반드시 들여쓰기를 해야 합니다
- else는 생략할 수 있습니다
# 나이에 따른 입장료 계산
age = 15 # 나이를 15세로 설정
if age < 18: # 18세 미만이면
print("청소년 입장료: 5000원") # 청소년 요금 안내
else: # 18세 이상이면
print("성인 입장료: 8000원") # 성인 요금 안내
들여쓰기가 중요한 이유
파이썬에서 들여쓰기는 매우 중요합니다. 다른 언어와 달리 {}를 사용하지 않고 들여쓰기로 코드 블록을 구분하기 때문입니다.
올바른 들여쓰기 예시:
score = 85 # 점수 변수
if score >= 90: # 90점 이상이면
print("A등급") # 4칸 들여쓰기
print("우수함") # 같은 깊이로 들여쓰기
else: # else도 if와 같은 깊이
print("B등급") # 4칸 들여쓰기
잘못된 들여쓰기 예시:
# 이렇게 하면 오류가 발생합니다!
score = 85
if score >= 90:
print("A등급") # 4칸 들여쓰기
print("우수함") # 들여쓰기 없음 - 오류!
들여쓰기 규칙:
- 보통 공백 4칸을 사용합니다
- 탭과 공백을 섞어 쓰면 안됩니다
- 같은 블록 안에서는 들여쓰기 깊이가 같아야 합니다
조건문에서 사용하는 비교 연산자
조건을 만들 때 사용하는 비교 연산자들을 알아보겠습니다:
연산자 의미 예시
== | 같다 | a == b |
!= | 같지 않다 | a != b |
< | 작다 | a < b |
> | 크다 | a > b |
<= | 작거나 같다 | a <= b |
>= | 크거나 같다 | a >= b |
실제 예시로 확인해보겠습니다:
# 학생의 성적에 따른 등급 판정
korean = 85 # 국어 점수
math = 92 # 수학 점수
english = 78 # 영어 점수
# 평균 계산
average = (korean + math + english) / 3 # 세 과목 평균
print(f"평균 점수: {average:.1f}점") # 소수점 1자리까지 출력
if average >= 90: # 평균이 90점 이상이면
print("등급: A") # A등급
elif average >= 80: # 평균이 80점 이상이면
print("등급: B") # B등급
elif average >= 70: # 평균이 70점 이상이면
print("등급: C") # C등급
else: # 그 외의 경우
print("등급: D") # D등급
논리 연산자 활용하기
여러 조건을 조합할 때 사용하는 연산자들입니다:
and 연산자 (그리고)
모든 조건이 참일 때만 전체가 참이 됩니다.
# 놀이공원 입장 조건 확인
age = 12 # 나이
height = 140 # 키 (cm)
# 10세 이상이고 키가 130cm 이상이어야 탑승 가능
if age >= 10 and height >= 130:
print("롤러코스터 탑승 가능합니다!")
else:
print("안전을 위해 탑승할 수 없습니다.")
or 연산자 (또는)
조건 중 하나라도 참이면 전체가 참이 됩니다.
# 할인 혜택 확인
age = 65 # 나이
is_student = False # 학생 여부
# 65세 이상이거나 학생이면 할인
if age >= 65 or is_student:
print("20% 할인 적용됩니다!")
price = 10000 * 0.8 # 20% 할인된 가격
else:
print("정가로 결제됩니다.")
price = 10000 # 정가
print(f"결제 금액: {price}원")
not 연산자 (아니다)
조건의 반대를 의미합니다.
# 회원가입 상태 확인
is_member = False # 회원가입 여부
if not is_member: # 회원이 아니라면
print("회원가입을 해주세요")
print("가입 시 10% 할인혜택!")
else: # 회원이라면
print("환영합니다!")
in과 not in 연산자
특정 값이 컬렉션(리스트, 문자열 등)에 포함되어 있는지 확인할 때 사용합니다.
# 좋아하는 과일 확인
favorite_fruits = ["사과", "바나나", "오렌지", "포도"] # 좋아하는 과일 목록
fruit = "사과" # 확인할 과일
if fruit in favorite_fruits: # 과일이 목록에 있다면
print(f"{fruit}는 제가 좋아하는 과일이에요!")
else: # 목록에 없다면
print(f"{fruit}는 별로 안 좋아해요.")
# 싫어하는 음식 확인
dislike_foods = ["브로콜리", "당근", "시금치"]
food = "피자"
if food not in dislike_foods: # 음식이 싫어하는 목록에 없다면
print(f"{food}는 먹을 수 있어요!")
else: # 싫어하는 목록에 있다면
print(f"{food}는 먹기 싫어요...")
elif로 다양한 조건 처리하기
여러 조건을 순서대로 확인할 때 elif를 사용합니다.
# 온도에 따른 옷차림 추천
temperature = 25 # 현재 온도
if temperature >= 30: # 30도 이상
print("너무 더워요! 반팔과 반바지를 입으세요")
clothes = "반팔, 반바지"
elif temperature >= 20: # 20도 이상 30도 미만
print("따뜻해요! 긴팔 셔츠가 좋겠네요")
clothes = "긴팔 셔츠"
elif temperature >= 10: # 10도 이상 20도 미만
print("쌀쌀해요! 가디건이나 자켓을 입으세요")
clothes = "가디건, 자켓"
else: # 10도 미만
print("추워요! 코트를 입으세요")
clothes = "코트"
print(f"추천 의상: {clothes}")
중첩 if문 사용하기
if문 안에 또 다른 if문을 넣을 수 있습니다.
# 영화 관람 등급 확인
age = 16 # 나이
has_guardian = True # 보호자 동반 여부
print("영화 관람 등급 확인 중...")
if age >= 19: # 19세 이상이면
print("모든 영화 관람 가능합니다")
else: # 19세 미만이면
if age >= 15: # 15세 이상 19세 미만
print("15세 이상 관람가 영화까지 볼 수 있습니다")
else: # 15세 미만
if has_guardian: # 보호자가 있으면
print("보호자 동반 시 12세 이상 관람가 영화 시청 가능")
else: # 보호자가 없으면
print("전체 관람가 영화만 시청 가능합니다")
조건부 표현식 (삼항 연산자)
간단한 조건문을 한 줄로 표현할 수 있습니다.
# 기본 형태: 참일때값 if 조건 else 거짓일때값
# 짝수 홀수 판별
number = 7
result = "짝수" if number % 2 == 0 else "홀수"
print(f"{number}은 {result}입니다")
# 성인 미성년자 판별
age = 16
status = "성인" if age >= 18 else "미성년자"
print(f"나이 {age}세는 {status}입니다")
# 최댓값 구하기
a = 15
b = 23
max_value = a if a > b else b
print(f"{a}와 {b} 중 큰 수는 {max_value}입니다")
실전 예제: 간단한 계산기
배운 내용을 종합해서 간단한 계산기를 만들어보겠습니다.
# 간단한 사칙연산 계산기
print("=== 간단한 계산기 ===")
# 숫자 입력 받기
num1 = 10 # 첫 번째 숫자
num2 = 3 # 두 번째 숫자
operator = "+" # 연산자
print(f"첫 번째 숫자: {num1}")
print(f"두 번째 숫자: {num2}")
print(f"연산자: {operator}")
# 연산 수행
if operator == "+": # 덧셈
result = num1 + num2
print(f"결과: {num1} + {num2} = {result}")
elif operator == "-": # 뺄셈
result = num1 - num2
print(f"결과: {num1} - {num2} = {result}")
elif operator == "*": # 곱셈
result = num1 * num2
print(f"결과: {num1} × {num2} = {result}")
elif operator == "/": # 나눗셈
if num2 != 0: # 0으로 나누기 체크
result = num1 / num2
print(f"결과: {num1} ÷ {num2} = {result}")
else:
print("오류: 0으로 나눌 수 없습니다!")
else: # 잘못된 연산자
print("오류: 지원하지 않는 연산자입니다!")
print("사용 가능한 연산자: +, -, *, /")
실전 예제: 학생 성적 관리 시스템
# 학생 성적 관리 시스템
print("=== 학생 성적 관리 시스템 ===")
# 학생 정보
student_name = "김철수" # 학생 이름
korean = 88 # 국어 점수
english = 92 # 영어 점수
math = 76 # 수학 점수
science = 84 # 과학 점수
print(f"학생 이름: {student_name}")
print(f"국어: {korean}점")
print(f"영어: {english}점")
print(f"수학: {math}점")
print(f"과학: {science}점")
# 총점과 평균 계산
total = korean + english + math + science
average = total / 4
print(f"\n총점: {total}점")
print(f"평균: {average:.1f}점")
# 등급 판정
if average >= 90:
grade = "A"
comment = "우수"
elif average >= 80:
grade = "B"
comment = "양호"
elif average >= 70:
grade = "C"
comment = "보통"
elif average >= 60:
grade = "D"
comment = "미흡"
else:
grade = "F"
comment = "재시험 필요"
print(f"등급: {grade}")
print(f"평가: {comment}")
# 과목별 분석
print("\n=== 과목별 분석 ===")
subjects = [("국어", korean), ("영어", english), ("수학", math), ("과학", science)]
for subject, score in subjects:
if score >= 90:
level = "매우 우수"
elif score >= 80:
level = "우수"
elif score >= 70:
level = "보통"
else:
level = "노력 필요"
print(f"{subject}: {score}점 - {level}")
# 장학금 대상 여부 확인
scholarship = False
if average >= 95: # 평균 95점 이상
scholarship = True
scholarship_type = "최우수 장학금"
elif average >= 90 and korean >= 85 and english >= 85: # 평균 90점 이상이면서 국어, 영어 85점 이상
scholarship = True
scholarship_type = "우수 장학금"
if scholarship:
print(f"\n축하합니다! {scholarship_type} 대상입니다!")
else:
print(f"\n장학금 조건에 미달합니다. 다음 학기에 더 노력하세요!")
정리하며
조건문은 프로그래밍의 핵심 요소입니다. 다음 점들을 기억하세요:
- if문은 조건에 따라 다른 동작을 실행합니다
- 들여쓰기는 반드시 일정하게 해야 합니다 (보통 공백 4칸)
- 콜론(:)을 빼먹지 마세요
- 비교 연산자와 논리 연산자를 활용해 복잡한 조건을 만들 수 있습니다
- elif를 사용해 여러 조건을 순서대로 확인할 수 있습니다
- 조건부 표현식으로 간단한 조건문을 한 줄로 작성할 수 있습니다
이제 여러분도 조건문을 활용해서 상황에 맞는 프로그램을 만들 수 있을 거예요!
반응형
'파이썬' 카테고리의 다른 글
11. 파이썬 반복문 완전 정복 - for문 기초부터 응용까지 (0) | 2025.05.27 |
---|---|
10. 파이썬 반복문 마스터하기: while문 완전 정복 (1) | 2025.05.27 |
8. 파이썬 변수와 메모리 관리 완벽 가이드 (0) | 2025.05.26 |
7. 파이썬 불린(Boolean) 자료형에 대해서 공부하기 (0) | 2025.05.26 |
6. 파이썬 집합(SET) 자료형. 여러 예제로 깊게 이해하기. (0) | 2025.05.25 |