파이썬 / / 2025. 5. 27. 04:42

9. 파이썬 조건문 (IF문) 완벽히 이해하기. 예제로 배우는 코딩공부.

반응형

파이썬-조건문-IF문

 

조건문이 왜 필요한가요?

우리는 일상생활에서 항상 선택을 합니다. "비가 오면 우산을 가져가고, 맑으면 그냥 나간다" 이런 상황처럼 컴퓨터도 조건에 따라 다른 일을 해야 할 때가 있어요. 파이썬에서는 이런 상황을 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장학금 조건에 미달합니다. 다음 학기에 더 노력하세요!")

 

정리하며

 

조건문은 프로그래밍의 핵심 요소입니다. 다음 점들을 기억하세요:

 

  1. if문은 조건에 따라 다른 동작을 실행합니다
  2. 들여쓰기는 반드시 일정하게 해야 합니다 (보통 공백 4칸)
  3. 콜론(:)을 빼먹지 마세요
  4. 비교 연산자와 논리 연산자를 활용해 복잡한 조건을 만들 수 있습니다
  5. elif를 사용해 여러 조건을 순서대로 확인할 수 있습니다
  6. 조건부 표현식으로 간단한 조건문을 한 줄로 작성할 수 있습니다

이제 여러분도 조건문을 활용해서 상황에 맞는 프로그램을 만들 수 있을 거예요!

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유