포스트

[Python 100일 챌린지] Day 8 - 조건문 if

[Python 100일 챌린지] Day 8 - 조건문 if

프로그램이 조건에 따라 스스로 판단하게 만들기! 😊 if문은 프로그래밍의 핵심입니다. 게임에서 “HP가 0이면 게임오버”, 쇼핑몰에서 “재고가 있으면 구매 가능”, 은행 앱에서 “비밀번호가 맞으면 로그인” 같은 모든 판단이 if문으로 만들어집니다. 오늘부터 여러분의 프로그램이 똑똑해질 거예요!

(15분 완독 ⭐⭐)

🎯 오늘의 학습 목표

📚 사전 지식

🎯 학습 목표 1: if문이 무엇인지 이해하기

한 줄 설명

if문 = 조건에 따라 다르게 행동하기

“만약 ~라면 …을 해라”를 코드로 표현하는 방법입니다.

실생활 비유

1
2
3
4
5
날씨가 비가 오면 → 우산을 챙긴다
그렇지 않으면   → 그냥 나간다

나이가 20세 이상이면 → "성인입니다"
그렇지 않으면        → "미성년자입니다"

기본 if문

문법

1
2
if 조건:
    실행할 코드

💡 중요: 콜론(:)과 들여쓰기(4칸 또는 Tab) 필수!

첫 if문 작성

1
2
3
4
age = 20

if age >= 18:
    print("성인입니다")

출력:

1
성인입니다

조건이 거짓이면?

1
2
3
4
5
6
age = 15

if age >= 18:
    print("성인입니다")

print("프로그램 끝")

출력:

1
프로그램 끝

💡 조건이 거짓이면 if 안의 코드는 실행되지 않습니다!


🎯 학습 목표 2: if-else로 양자택일 구현하기

“그렇지 않으면”을 표현하기

1
2
3
4
5
6
age = 15

if age >= 18:
    print("성인입니다")
else:
    print("미성년자입니다")

출력:

1
미성년자입니다

실습 예제

1
2
3
4
5
6
7
# 짝수/홀수 판별
number = 7

if number % 2 == 0:
    print(f"{number}는 짝수입니다")
else:
    print(f"{number}는 홀수입니다")

출력:

1
7는 홀수입니다

🎯 학습 목표 3: if-elif-else로 다중 조건 처리하기

여러 조건 처리하기

1
2
3
4
5
6
7
8
9
10
score = 85

if score >= 90:
    print("A등급")
elif score >= 80:
    print("B등급")
elif score >= 70:
    print("C등급")
else:
    print("D등급")

출력:

1
B등급

💡 elif = else if (그렇지 않고 만약 ~라면)

계절 판별 예제

1
2
3
4
5
6
7
8
9
10
month = 7

if month >= 3 and month <= 5:
    print("봄입니다")
elif month >= 6 and month <= 8:
    print("여름입니다")
elif month >= 9 and month <= 11:
    print("가을입니다")
else:
    print("겨울입니다")

출력:

1
여름입니다

🎯 학습 목표 4: 비교 연산자로 조건 만들기

비교 연산자 종류

1
2
3
4
5
6
7
8
9
a = 10
b = 20

print(a == b)  # False (같다)
print(a != b)  # True  (다르다)
print(a > b)   # False (크다)
print(a < b)   # True  (작다)
print(a >= b)  # False (크거나 같다)
print(a <= b)  # True  (작거나 같다)

문자열 비교

1
2
3
4
5
6
7
name = "홍길동"

if name == "홍길동":
    print("이름이 일치합니다")

if name != "김철수":
    print("다른 사람입니다")

출력:

1
2
이름이 일치합니다
다른 사람입니다

🎯 학습 목표 5: 논리 연산자로 복잡한 조건 만들기

and (그리고)

둘 다 참이어야 참

1
2
3
4
5
age = 25
has_license = True

if age >= 18 and has_license:
    print("운전할 수 있습니다")

출력:

1
운전할 수 있습니다

or (또는)

하나만 참이어도 참

1
2
3
4
5
is_weekend = True
is_holiday = False

if is_weekend or is_holiday:
    print("쉬는 날입니다")

출력:

1
쉬는 날입니다

not (부정)

참/거짓을 뒤집기

1
2
3
4
is_raining = False

if not is_raining:
    print("우산이 필요 없습니다")

출력:

1
우산이 필요 없습니다

🎯 학습 목표 6: 중첩 if와 in 연산자 활용하기

중첩 if문

if 안에 if 넣기

1
2
3
4
5
6
7
8
9
10
age = 25
has_ticket = True

if age >= 18:
    if has_ticket:
        print("입장 가능합니다")
    else:
        print("티켓이 필요합니다")
else:
    print("미성년자는 입장 불가")

출력:

1
입장 가능합니다

더 간단하게 (and 사용)

1
2
3
4
5
6
7
8
9
age = 25
has_ticket = True

if age >= 18 and has_ticket:
    print("입장 가능합니다")
elif age >= 18:
    print("티켓이 필요합니다")
else:
    print("미성년자는 입장 불가")

in 연산자 - 포함 여부 확인

리스트에 포함되어 있는지

1
2
3
4
5
6
7
fruits = ["사과", "바나나", "포도"]

if "사과" in fruits:
    print("사과가 있습니다")

if "딸기" not in fruits:
    print("딸기가 없습니다")

출력:

1
2
사과가 있습니다
딸기가 없습니다

문자열에 포함되어 있는지

1
2
3
4
5
6
7
text = "Python은 재미있어요"

if "Python" in text:
    print("Python이라는 단어가 있습니다")

if "어려" not in text:
    print("'어려'라는 단어가 없습니다")

출력:

1
2
Python이라는 단어가 있습니다
'어려'라는 단어가 없습니다

💻 실습 예제

예제 1: 로그인 시스템

1
2
3
4
5
6
7
8
9
10
username = "admin"
password = "1234"

input_user = "admin"
input_pass = "1234"

if input_user == username and input_pass == password:
    print("로그인 성공!")
else:
    print("아이디 또는 비밀번호가 틀렸습니다")

출력:

1
로그인 성공!

예제 2: BMI 계산 및 판정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
height = 1.75  # 미터
weight = 70    # 킬로그램

bmi = weight / (height ** 2)

if bmi < 18.5:
    print("저체중")
elif bmi < 23:
    print("정상")
elif bmi < 25:
    print("과체중")
else:
    print("비만")

print(f"당신의 BMI: {bmi:.1f}")

출력:

1
2
정상
당신의 BMI: 22.9

예제 3: 할인 계산기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
price = 50000
is_member = True
quantity = 3

# 회원 할인 10%
if is_member:
    price = price * 0.9

# 3개 이상 구매시 추가 5% 할인
if quantity >= 3:
    price = price * 0.95

total = price * quantity

print(f"총 결제 금액: {total:.0f}")

출력:

1
총 결제 금액: 128250원

💡 실전 팁 & 주의사항

💡 Tip 1: 들여쓰기 필수

1
2
3
4
5
6
7
# ❌ 잘못된 예 (들여쓰기 없음)
if age >= 18:
print("성인입니다")  # IndentationError!

# ✅ 올바른 예 (4칸 또는 Tab)
if age >= 18:
    print("성인입니다")

💡 Tip 2: 콜론(:) 필수

1
2
3
4
5
6
7
# ❌ 잘못된 예
if age >= 18
    print("성인입니다")  # SyntaxError!

# ✅ 올바른 예
if age >= 18:
    print("성인입니다")

💡 Tip 3: 대입(=) vs 비교(==)

1
2
3
4
5
6
7
# ❌ 잘못된 예 (대입)
if age = 18:  # SyntaxError!
    print("18세입니다")

# ✅ 올바른 예 (비교)
if age == 18:
    print("18세입니다")

💡 Tip 4: if vs elif 차이

증상:

1
2
3
4
5
6
score = 95

if score >= 60:
    print("합격")
if score >= 90:
    print("우수")

출력:

1
2
합격
우수

문제: 두 조건이 모두 실행됨

해결:

1
2
3
4
5
6
score = 95

if score >= 90:
    print("우수")
elif score >= 60:
    print("합격")

출력:

1
우수

💡 Tip 5: Boolean 변수는 간결하게

복잡한 코드:

1
2
if age >= 18 and has_ticket == True and is_open == True:
    print("입장 가능")

간단하게:

1
2
3
# Boolean 변수는 그 자체로 조건
if age >= 18 and has_ticket and is_open:
    print("입장 가능")

💡 Tip 6: in 연산자로 간결하게

1
2
3
4
5
6
7
# ❌ 복잡한 방법
if fruit == "사과" or fruit == "바나나" or fruit == "포도":
    print("과일입니다")

# ✅ 간결한 방법
if fruit in ["사과", "바나나", "포도"]:
    print("과일입니다")

🧪 연습 문제

문제 1: 절대값 구하기

숫자의 절대값을 if문으로 구하세요. (절대값 = 음수면 양수로, 양수면 그대로)

💡 힌트

숫자가 0보다 작으면 -1을 곱하세요!

✅ 정답
1
2
3
4
5
6
7
8
9
number = -5

if number < 0:
    absolute = number * -1
else:
    absolute = number

print(f"{number}의 절대값: {absolute}")
# -5의 절대값: 5

문제 2: 윤년 판별

연도가 윤년인지 판별하세요.

  • 4로 나누어떨어지면 윤년
  • 단, 100으로 나누어떨어지면 평년
  • 단, 400으로 나누어떨어지면 윤년
💡 힌트

여러 조건을 and와 or로 연결하세요!

✅ 정답
1
2
3
4
5
6
year = 2024

if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print(f"{year}년은 윤년입니다")
else:
    print(f"{year}년은 평년입니다")

문제 3: 가위바위보 게임

컴퓨터와 사용자의 선택을 비교해서 승패를 판정하세요.

✅ 정답
1
2
3
4
5
6
7
8
9
10
11
12
13
user = "가위"
computer = ""

if user == computer:
    print("무승부!")
elif user == "가위" and computer == "":
    print("사용자 승리!")
elif user == "바위" and computer == "가위":
    print("사용자 승리!")
elif user == "" and computer == "바위":
    print("사용자 승리!")
else:
    print("컴퓨터 승리!")

📝 오늘 배운 내용 정리

  1. if문: 조건이 참일 때만 실행
  2. if-else: 참/거짓에 따라 다르게 실행
  3. if-elif-else: 여러 조건 처리
  4. 비교 연산자: ==, !=, >, <, >=, <=
  5. 논리 연산자: and, or, not
  6. in 연산자: 포함 여부 확인

🎯 실습 과제

과제: 간단한 계산기

두 숫자와 연산자를 받아서 계산하는 프로그램을 만드세요.

예시:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
a = 10
b = 5
operator = "+"

if operator == "+":
    result = a + b
elif operator == "-":
    result = a - b
elif operator == "*":
    result = a * b
elif operator == "/":
    if b != 0:
        result = a / b
    else:
        result = "0으로 나눌 수 없습니다"
else:
    result = "잘못된 연산자"

print(f"{a} {operator} {b} = {result}")

🔗 관련 자료


📚 이전 학습

Day 7: 리스트 다루기

어제는 리스트를 만들고 사용하는 방법을 배웠습니다!

📚 다음 학습

Day 9: 반복문 for ⭐⭐

내일은 같은 작업을 반복하는 for문을 배웁니다!


“늦었다고 생각할 때가 가장 빠른 시기입니다!” 🚀

Day 8/100 Phase 1: Python 시작하기 #100DaysOfPython
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.