파이썬 프로그램의 흐름제어 - if 문 완벽 이해하기
파이썬 프로그램의 흐름제어 - if 문 완벽 이해하기
조건에 따라 다르게 실행되는 코드, 알고 보니 파이썬의 핵심이었어요!
안녕하세요, 파이썬 입문자 여러분 😊
오늘은 프로그래밍에서 빠질 수 없는 조건문, 그 중에서도 가장 기본이자 핵심이 되는 if 문에 대해 알아보려고 해요.
"조건에 따라 실행 흐름을 바꾼다"는 개념은 우리가 실제 삶에서도 매일 마주치는 일이에요.
예를 들어,
"비가 오면 우산을 쓴다", "돈이 있으면 택시를 탄다" 같은 행동들도 일종의 조건문이죠.
그렇다면, 이런 논리를 코드로 어떻게 표현할 수 있을까요?
이번 글에서는 if 문의 기본 구조부터 시작해서, elif, 조건부 표현식, 연산자 활용까지…
초보자도 쉽고 확실하게 이해할 수 있도록 친절하게 알려드릴게요!
그럼 함께 파이썬 흐름제어의 첫 걸음을 시작해볼까요? 🚀
목차
1. if 문의 기본 구조와 개념
프로그래밍에서 가장 중요한 개념 중 하나는 "조건에 따라 다른 행동을 하게 만드는 것"이에요.
우리가 일상에서 '비가 오면 우산을 챙긴다', '버스가 오면 탑승한다'처럼 조건에 따라 행동하는 것처럼,
컴퓨터에게도 "이 조건일 땐 이렇게 해"라고 알려주는 문법이 필요합니다.
바로 그 핵심이 if 문이에요.
if 문의 기본 구조
if 조건식:
실행할 코드
else:
조건식이 거짓일 때 실행할 코드
이 구조는 기본 중의 기본이에요.
if
뒤에 조건을 적고, 콜론(:
)을 붙인 뒤 그 아래 들여쓴 줄부터 실행할 내용을 적습니다.
조건이 참(True)이면 if 아래 코드를 실행하고, 거짓(False)이면 else 아래 코드를 실행해요.
간단한 예제
money = 1000
if money >= 500:
print("버스를 탄다")
else:
print("걸어가자")
이 코드에서 변수 money
가 500 이상이면 "버스를 탄다"를 출력하고, 그렇지 않으면 "걸어가자"를 출력해요.
실제 생활에서 자주 겪는 상황을 그대로 코드로 옮긴 거죠 😊
if 문을 사용하는 이유는?
- 특정 조건일 때만 코드를 실행하고 싶을 때
- 사용자 입력값에 따라 결과를 다르게 보여주고 싶을 때
- 프로그램 흐름을 자유롭게 제어하고 싶을 때
실전 팁 💡
if
문은 하나만 쓰는 경우도 많아요. 꼭 else
가 필요한 건 아니에요.
예를 들어,
score = 90
if score >= 80:
print("우수한 성적입니다!")
이렇게 조건이 참일 때만 실행할 코드를 넣고, 거짓일 때는 아무 것도 하지 않아도 되는 상황도 있거든요.
비교 연산자의 예시 정리 🧠
연산자 | 설명 | 예시 |
---|---|---|
== |
같다 | a == b |
!= |
다르다 | a != b |
> |
크다 | a > b |
< |
작다 | a < b |
>= |
크거나 같다 | a >= b |
<= |
작거나 같다 | a <= b |
if 문은 파이썬의 가장 기본이자 중요한 문법 중 하나예요.
여기서부터 흐름제어의 세계가 시작된다고 해도 과언이 아니죠 😉
다음 장에서는 들여쓰기와 문법 규칙을 제대로 익혀서 에러 없이 정확한 조건문을 작성하는 방법을 알아볼게요!
2. 들여쓰기와 문법 규칙
파이썬에서 들여쓰기(indentation)는 단순한 코드 정리가 아니라 문법 그 자체예요.
즉, 들여쓰기를 잘못하면 문법 오류(SyntaxError)가 발생해요.
다른 언어에서는 괄호나 중괄호로 코드 블록을 구분하지만, 파이썬은 들여쓰기로 구분해요.
파이썬의 들여쓰기 규칙
- 콜론(
:
) 다음 줄부터는 반드시 들여쓰기를 해야 한다 - 들여쓰기의 간격은 보통 공백 4칸(스페이스 4번), 또는 공백 2칸을 사용
- 들여쓰기 혼용 금지! (탭
\t
과 스페이스
잘못된 예제 🚫
money = 1000
if money >= 500:
print("버스를 탄다") # ← 들여쓰기 안 해서 오류 발생!
위 예제는 실행하면 IndentationError가 발생해요.
if 문 아래 줄은 반드시 들여쓰기를 해야 한다는 걸 꼭 기억하세요!
올바른 예제 ✅
money = 1000
if money >= 500:
print("버스를 탄다")
들여쓰기를 제대로 한 코드에서는 아무 문제 없이 실행되며, if 문 블록 안의 print
가 정상적으로 실행됩니다.
여러 조건문을 사용할 때 주의할 점
if
와 else
, elif
같은 문장을 같이 쓸 때도 들여쓰기 구조가 무너지지 않도록 주의해야 해요.
아래 예제를 통해 구조를 다시 한 번 정리해볼게요.
x = 15
if x < 10:
print("10보다 작습니다.")
elif x < 20:
print("10 이상 20 미만입니다.")
else:
print("20 이상입니다.")
📌 주의사항 체크리스트
이제 if 문을 제대로 쓰기 위한 핵심 문법까지 익혔어요.
다음으로는 if 조건문에서 활용할 수 있는 비교 연산자, 논리 연산자들에 대해 본격적으로 배워볼 거예요.
조건문을 풍성하게 만들어주는 도구들이니까 꼭 알고 넘어가야 해요! 🔍
3. 조건문에 사용되는 다양한 연산자
if
문을 제대로 활용하려면, 조건을 판단할 수 있는 연산자들을 잘 알아야 해요.
조건문 안에서는 비교 연산자, 논리 연산자, 멤버십 연산자 등을 이용해서 복잡한 조건도 자유롭게 만들 수 있거든요.
이번에는 이 연산자들의 종류와 각각 어떤 역할을 하는지 자세히 살펴볼게요! 🧐
① 비교 연산자 (Comparison Operators)
두 값을 비교해서 참(True) 또는 거짓(False)을 리턴해주는 연산자들이에요.
연산자 | 설명 | 예시 |
---|---|---|
== |
두 값이 같으면 True | a == b |
!= |
두 값이 다르면 True | a != b |
> |
왼쪽 값이 크면 True | a > b |
< |
왼쪽 값이 작으면 True | a < b |
>= |
왼쪽 값이 크거나 같으면 True | a >= b |
<= |
왼쪽 값이 작거나 같으면 True | a <= b |
② 논리 연산자 (Logical Operators)
여러 조건을 조합해서 사용할 수 있게 해주는 연산자예요. 조건을 AND, OR, NOT처럼 묶을 수 있어요.
-
and
: 두 조건이 모두 참일 때만 True →x > 10 and x < 20
-
or
: 둘 중 하나라도 참이면 True →x < 0 or x > 100
-
not
: 조건의 반대 결과 →not x == 10
③ 멤버십 연산자 (Membership Operators)
리스트, 튜플, 문자열 등 시퀀스 데이터 안에 특정 값이 있는지 없는지를 판단할 때 사용해요.
-
in
: 포함되어 있으면 True →'apple' in fruits
-
not in
: 포함되지 않았으면 True →'banana' not in fruits
💡 실전 꿀팁
연산자들은 단독으로도, 조합해서도 사용할 수 있어요.
예를 들어, 이런 조건도 가능하죠:
score = 85
if score >= 80 and score <= 90:
print("좋은 점수입니다!")
이제 조건문에 필요한 무기(?)들은 다 준비됐어요!
다음 단계에서는 elif를 활용해서 복잡한 조건을 더 세련되게 처리하는 방법을 알아볼게요 💡
4. 여러 조건을 처리하는 elif 활용법
if 문만으로 모든 조건을 처리하려다 보면 else가 너무 자주 등장하거나, 조건이 복잡해지면서 가독성이 떨어지는 코드가 되기 쉬워요.
이럴 때 사용하는 게 바로 elif입니다!
elif
는 “이 조건도 아니면, 다음 조건을 확인해봐” 라는 뜻이에요.
조건을 여러 단계로 나눠서 깔끔하게 처리할 수 있죠.
elif의 기본 구조
if 조건1:
실행문1
elif 조건2:
실행문2
elif 조건3:
실행문3
else:
위의 어떤 조건도 아닐 때 실행문
elif
는 필요한 만큼 여러 번 사용할 수 있고,
마지막에 else
로 마무리하면 예상치 못한 상황까지 모두 처리할 수 있어요.
물론 else
는 생략도 가능하답니다!
예제: 교통수단 선택
money = 2000
card = True
if money >= 3000:
print("택시를 탄다")
elif card:
print("카드로 버스를 탄다")
else:
print("걸어간다")
조건을 순서대로 판단해서 가장 먼저 True가 되는 조건문의 블록만 실행해요.
이 예제에서는 돈은 부족하지만 카드가 있으므로 "카드로 버스를 탄다"
가 출력돼요.
elif는 언제 쓰는 게 좋을까?
- if와 else만으로는 조건이 너무 많아질 때
- 조건마다 실행할 코드가 전혀 다를 때
- 프로그램 흐름을 좀 더 논리적으로 정리하고 싶을 때
실전 예제: 성적 등급 매기기
score = 87
if score >= 90:
print("A등급입니다.")
elif score >= 80:
print("B등급입니다.")
elif score >= 70:
print("C등급입니다.")
else:
print("D등급입니다.")
점수에 따라 다양한 등급을 구분하는 데 elif
가 정말 유용해요.
이 코드를 실행하면 87점은 "B등급입니다."
로 출력되겠죠!
주의할 점
- if → elif → else 순서를 꼭 지켜야 해요
- 조건이 충돌하지 않도록 주의 (중복 조건 조심!)
자, 이제 if 문과 elif 문으로 다양한 조건을 깔끔하게 처리하는 방법을 익혔어요 🎉
다음은 좀 더 간단하게 조건문을 쓸 수 있는 표현법, 즉 조건부 표현식을 배워볼게요! 👀
5. 간결한 조건 처리: 조건부 표현식
파이썬에서는 짧고 간단한 조건을 처리할 때, 조건부 표현식(conditional expression)을 사용할 수 있어요.
이건 마치 한 줄로 쓰는 if-else
문 같은 거예요.
코드를 더 간결하고 읽기 쉽게 만들 수 있어서, 간단한 상황에선 아주 유용하죠!
조건부 표현식의 문법
실행값1 if 조건식 else 실행값2
이 문법은 “조건식이 참이면 실행값1, 거짓이면 실행값2”를 선택하는 구조예요.
예를 들어,
한 줄짜리 조건문을 작성할 때 아주 유용하답니다!
예제 1: 짧고 간단한 조건 처리
score = 75
result = "합격" if score >= 60 else "불합격"
print(result)
이 코드는 score
가 60 이상이면 "합격", 그렇지 않으면 "불합격"이라는 문자열을 result
변수에 저장해요.
기존의 if-else 구조보다 훨씬 간결하죠?
예제 2: 중첩된 조건 처리
age = 25
category = "청소년" if age < 20 else "성인"
print(category)
이런 식으로 사용자 나이에 따라 분류하거나, 조건이 간단한 경우에는 가독성도 훌륭해요.
다만 너무 복잡한 조건은 오히려 읽기 어려워질 수 있으니 주의!
조건부 표현식을 쓸 때 주의할 점
- 코드가 너무 복잡해지면 일반적인 if 문이 더 나을 수 있어요.
- 한 줄에 너무 많은 논리 연산자나 중첩 표현식을 사용하지 마세요.
- 단순 비교 조건에 한해서 사용하는 걸 추천합니다.
파이썬은 이런 표현식 덕분에 “짧고 읽기 쉬운 코드”를 지향하죠.
조건이 단순할 때는 조건부 표현식을 적극 활용해 보세요!
이제 마지막으로, 지금까지 배운 내용을 실전 예제로 종합해볼 시간입니다. 💪
6. 실전 예제로 배우는 if 문
이제 if 문을 진짜 잘 쓰는 방법은?
바로 실전 예제에서 연습하는 거예요!
지금까지 배운 내용을 토대로 다양한 상황을 코드로 표현해보면서, 조건문이 얼마나 유용한지 체감해볼게요.
"어? 이럴 땐 if 써야겠다!" 하는 감각이 생기는 게 중요합니다 😉
🧪 예제 1: 짝수, 홀수 판단하기
number = int(input("숫자를 입력하세요: "))
if number % 2 == 0:
print("짝수입니다.")
else:
print("홀수입니다.")
%
연산자는 나머지를 계산하죠.
나머지가 0이면 짝수예요.
실생활에서 "숫자의 성격"을 판단할 때도 조건문이 이렇게 활용됩니다.
🧪 예제 2: 로그인 기능 구현
username = input("아이디 입력: ")
password = input("비밀번호 입력: ")
if username == "admin" and password == "1234":
print("로그인 성공!")
else:
print("로그인 실패!")
간단한 로그인 검증 로직도 if 문이 핵심이에요.
and
연산자를 통해 두 조건이 모두 참일 때만 로그인 허용!
🧪 예제 3: 점수에 따른 등급 시스템
score = int(input("점수를 입력하세요: "))
if score >= 90:
print("A등급")
elif score >= 80:
print("B등급")
elif score >= 70:
print("C등급")
else:
print("F등급")
우리가 학교에 다닐 때 많이 보던 바로 그 등급 시스템이에요.
이렇게 점수 기반 조건 판단도 if-elif 구조로 깔끔하게 해결됩니다 💯
📌 정리하며: if 문, 어디에나 쓰인다!
조건문은 모든 프로그램의 기본이자 핵심이에요.
실제 프로젝트나 서비스 로직에서도 거의 빠짐없이 등장하죠.
파이썬의 if, elif, else, 조건부 표현식은 간단하지만 강력하고, 잘만 쓰면 코드를 아주 우아하고 읽기 쉽게 만들어줍니다.
✅ 마무리: 조건문은 언제나 시작점이다
조건문은 초보자를 위한 문법이 아니라, 모든 개발자들이 반복해서 쓰는 필수 도구입니다.
코드의 흐름을 자유자재로 제어하고 싶다면, 다양한 조건을 명확하게 표현할 줄 알아야 해요.
여러분이 작성하는 모든 파이썬 프로그램에는 거의 반드시 if 문이 들어갈 거예요.
그러니 지금 이 시점에서 단단히 기초를 다져두세요!
다음엔 while, for 같은 반복문을 배워서 좀 더 강력한 프로그램을 만들어볼 차례입니다.
파이썬의 세계, 함께 계속 탐험해봐요 😎