영어처럼 생긴 판단
if는 대부분의 프로그램이 가장 먼저 손에 드는 도구예요. 조건이 참일 때는 이 길로, 아닐 때는 다른 길로 코드가 걸어가게 해줍니다. 파이썬은 이걸 직관적으로 표현해요:
두 줄, 한 번의 판단. if 줄은 콜론으로 끝나고, 그 아래 들여쓰기된 줄이 if의 본문 — 조건이 참일 때 실행되는 코드예요. hour가 15였다면 본문은 통째로 건너뛰어지고 아무것도 출력되지 않아요.
여기서 구조를 만드는 건 들여쓰기예요. 파이썬은 줄 앞의 공백을 보고 어떤 줄이 if에 속하는지를 판단합니다. 한 단계에 공백 4칸이 관례고, 일관성을 유지하세요.
else 분기 붙이기
어느 쪽이든 뭔가는 하게 하고 싶은 경우가 많아요: 조건이 참이면 이거, 아니면 저거. 그때 쓰는 게 else예요:
else 줄에는 조건이 없어요 — if가 잡지 않은 모든 걸 받아냅니다.
elif로 여러 분기 만들기
경로가 두 개 이상 필요하면, if와 else 사이에 elif("else if") 절을 쌓으세요:
파이썬은 조건을 위에서 아래로 훑으면서 참이 된 첫 조건의 블록을 실행해요. 나머지는 건너뜁니다. 이 위에서 아래로 순서가 중요해요 — score >= 60을 score >= 90보다 먼저 두면 전원이 D를 받습니다. 첫 번째 참 조건이 이겨요.
염두에 둘 깔끔한 구조: 어떤 입력이 들어와도 조건들이 서로 겹치지 않아야 하고, 순서는 여러분이 그 문제를 생각하는 자연스러운 흐름을 반영해야 해요. 가장 구체적인 경우부터 먼저, 가장 일반적인 경우는 마지막에.
조건에서의 Truthy 값
if에 들어가는 표현식이 꼭 True나 False로 평가될 필요는 없어요. 파이썬은 어떤 값이든 받고 그 _참스러움_을 판단합니다:
if items:는 "리스트에 뭐라도 있다면"으로 읽힙니다. falsy 값에는 다음이 있어요:
False0,0.0None- 빈 컨테이너:
"",[],{},set(),()
그 외의 모든 건 truthy예요. truthiness를 쓰면 코드가 더 자연스럽게 읽히는데, 한 가지 주의: 0이 의미 있는 값이라면(정당하게 0인 카운터 같은 것), "비어있음 = 0" 혼동을 피하려고 is not None이나 != 0으로 명시적으로 비교하세요.
조건 조합하기
and, or, not으로 복합 조건을 만들 수 있어요:
양 끝이 중간 값을 공유하는 경우에는 명시적인 and보다 체이닝 비교가 더 깔끔해요:
이건 18 <= age and age < 65와 같지만 수학의 부등식처럼 읽힙니다.
중첩된 if 문
if 안에 if를 넣어도 돼요. 합법적이고, 가끔은 그게 가장 명료하기도 해요 — 하지만 조건 코드가 따라가기 어려워지는 주된 원인이 되기도 합니다. 세 단계 깊이가 되면, (함수를 쓰기 시작한 뒤에는) 일찍 리턴하거나 조건을 하나로 합쳐서 평평하게 만드는 걸 고려해 보세요:
둘 다 동작해요. 이 코드를 처음 보는 사람 기준으로 더 잘 읽히는 쪽을 고르세요.
삼항 표현식
조건에 따라 값 하나를 둘 중 하나로 정하고 싶을 때, 파이썬은 간단한 형태를 제공합니다:
왼쪽에서 오른쪽으로 읽으세요: "temp가 70 이상이면 warm, 아니면 cool." 짧은 둘 중 하나 할당에 좋아요. 분기가 길어지거나 여러 연산이 섞이면 그만 쓰세요 — 그때부터는 일반 if/else 블록이 눈에 훨씬 편해요.
if가 표현식이 되는 곳은 딱 한 군데뿐
일부 언어와 다르게, 파이썬의 if 문 자체는 값을 만들어 내지 않아요. 오직 삼항 형태만 그렇게 합니다. Rust나 Kotlin처럼 x = if ...: 같은 식으로 쓸 수 없어요. 조건부 값이 필요하면 삼항, 조건부 동작이 필요하면 if 블록을 쓰세요.
작은 완성 예제
온도를 분류하는 작은 프로그램 하나:
로직이 결국 advice에 뭘 담을지 정하는 일에 대부분이에요. 어느 온도 범위가 어느 메시지에 대응되는지가 한눈에 들어옵니다. 조건문을 쓸 때 지향할 모양이 바로 그거예요 — 각 분기는 작게, 전체 의도는 분명하게.
다음에는
조건은 코드가 경로를 고르게 해줘요. 반복은 같은 걸 되풀이하게 해주고요. 다음은 for 반복문이에요. 파이썬에서 가장 흔한 반복문이고, 몇 페이지 뒤에 만날 컬렉션들과 자연스럽게 짝을 이뤄요.
자주 묻는 질문
파이썬의 if 문은 어떻게 동작하나요?
if condition: 뒤에 들여쓰기된 블록을 쓰면, 조건이 참일 때만 그 블록이 실행됩니다. 선택 사항인 elif(else if) 절로 조건을 더 검사할 수 있고, 어느 것도 맞지 않았을 때 동작하는 else도 붙일 수 있어요.
파이썬에 switch 문이 있나요?
Python 3.10에서 구조적 패턴 매칭을 위한 match/case가 추가됐어요. switch 문의 대부분 용례를 포함하고 그 이상까지 커버합니다. 단순한 분기에는 if/elif 체인도 여전히 흔하고 충분히 좋아요.
파이썬의 삼항 if는 뭔가요?
한 줄로 쓰는 조건 표현식이에요: result = a if condition else b. 왼쪽에서 오른쪽으로 읽혀요 — condition이 참이면 a를, 아니면 b를 평가합니다. 짧은 둘 중 하나 할당에 편해요. 분기가 길어지면 가독성이 떨어집니다.