개발/Python

[초급반] Step 3. 제어문으로 흐름 만들기: if/else, elif 조건문 활용

ophelisis 2025. 12. 15. 15:33
반응형

안녕하세요! 파이썬 학습 세 번째 시간입니다. 지난 시간에는 파이썬의 핵심 재료인 데이터 타입(숫자, 문자열)을 배웠습니다.

오늘은 프로그램이 단순히 위에서 아래로 실행되는 것이 아니라, 특정 조건에 따라 실행 흐름을 바꿀 수 있도록 만드는 방법을 배우겠습니다. 이 기능을 **조건문(Conditional Statement)**이라고 하며, 파이썬에서는 if, elif, else 키워드를 사용합니다.


1. 조건문이 필요한 이유

현실 세계의 거의 모든 결정은 조건에 따라 달라집니다.

  • 예시: (만약) 날씨가 좋으면 $\rightarrow$ 산책을 간다. (그렇지 않고) 비가 오면 $\rightarrow$ 집에서 영화를 본다.

프로그래밍에서도 마찬가지입니다. '사용자가 로그인했는지', '재고가 남아있는지' 등의 조건에 따라 프로그램이 다른 행동을 하도록 지시하는 것이 조건문의 역할입니다.

2. 조건의 기본: 비교 연산자와 논리 연산자

if 문을 사용하려면 먼저 조건을 만드는 방법을 알아야 합니다. 조건의 결과는 항상 **불리언 값 (True 또는 False)**입니다.

2-1. 비교 연산자 (Comparison Operators)

두 값을 비교하여 참/거짓을 판단합니다.

연산자 의미 예시 결과
== 값이 같다 5 == 5 True
!= 값이 같지 않다 "apple" != "banana" True
> 초과 (크다) 10 > 5 True
< 미만 (작다) 10 < 5 False
>= 이상 (크거나 같다) 10 >= 10 True
<= 이하 (작거나 같다) 5 <= 3 False

2-2. 논리 연산자 (Logical Operators)

여러 개의 조건을 조합하여 복합적인 조건을 만들 때 사용합니다.

연산자 의미 예시 설명
and 모두 참일 때 참 True and False False
or 하나라도 참이면 참 True or False True
not 참이면 거짓, 거짓이면 참 not True False

3. if, elif, else 구조 마스터하기

3-1. if와 else (단일 조건)

가장 기본적인 형태로, 조건이 참일 때그렇지 않을 때 실행할 코드를 분리합니다.

Python
 
score = 85

if score >= 90:
    print("A 학점입니다.")
else:
    # 위의 조건(score >= 90)이 거짓일 때 무조건 실행
    print("90점 미만입니다.") 

3-2. elif (다중 조건)

여러 개의 조건을 순차적으로 검사할 때 사용합니다. elif는 "else if"의 줄임말로, if 조건이 거짓일 경우 다음 조건을 검사하라는 의미입니다.

Python
 
score = 85

if score >= 90:
    print("A 학점입니다.")
elif score >= 80: # 90점 미만 중에서 80점 이상인 경우
    print("B 학점입니다.")
elif score >= 70: # 80점 미만 중에서 70점 이상인 경우
    print("C 학점입니다.")
else:
    print("F 학점입니다.") # 위의 모든 조건이 거짓일 때 실행

규칙 1: 들여쓰기 (Indentation)

파이썬은 C언어와 같은 중괄호({}) 대신 **들여쓰기(Indent)**를 사용하여 코드 블록을 구분합니다. if나 else 문 다음에 오는 코드는 반드시 4칸 공백 또는 Tab으로 들여쓰기 해야 합니다.

규칙 2: 콜론 (Colon)

if, elif, else 뒤에는 반드시 **콜론(:)**을 붙여야 합니다.

4. 복합 조건문 활용 예제

논리 연산자를 사용하여 더욱 정교한 조건을 만들어 봅시다.

Python
 
is_member = True
balance = 15000

# 15000원 이상이거나(or), 멤버십 회원인 경우에 쿠폰 제공
if balance >= 10000 or is_member:
    print("구매 가능합니다. 쿠폰이 발급됩니다.")
else:
    print("잔액이 부족합니다.")

# 10000원 이상이면서(and), 멤버십 회원인 경우에만 VIP 혜택 제공
if balance >= 10000 and is_member:
    print("VIP 특별 할인 적용!")
반응형