티스토리 뷰

If ~ 조건문 

  • 조건문 중 가장 기본 형태
  • 제시한 조건이 참(True)이면 명령문을 실행하고, 거짓(False)이면 아무것도 실행하지 않음
  • 파이썬에서 if 문은 들여쓰기로 실행 범위를 구분함

✅ 기본 구조 (파이썬)

if 조건:
    실행할 문장1
    실행할 문장2
    실행할 문장3
  • 조건이 참일 때 위의 문장들이 실행됨
  • 조건이 거짓이면 아무 일도 일어나지 않음
  • 반드시 들여쓰기로 문장의 범위를 표시해야 함

⚠️ 잘못된 예시 (들여쓰기 하지 않으면 오류 발생)

if 조건:
print("이 문장은 실행될까요?")

위 코드는 들여쓰기를 하지 않았기 때문에 IndentationError가 발생함


if ~ else 문 (양자 택일형)

  • 조건이 참(True)일 때와 거짓(False)일 때 각기 다른 명령을 실행하고자 할 때 사용
  • if 문의 조건이 참이면 if 블록을 실행 조건이 거짓이면 else 블록을 실행

✅ 기본 구조

if 조건문:
    수행할 문장1
    수행할 문장2
    ...
else:
    수행할 문장A
    수행할 문장B
    ...
  • 조건이 참 → 위쪽 if 블록 실행
  • 조건이 거짓 → 아래쪽 else 블록 실행

🧪 예시

age = int(input("나이를 입력하세요: "))

if age >= 65:
    print("경로 우대 대상입니다.")
else:
    print("일반 요금입니다.")
  • 나이가 65세 이상이면 "경로 우대 대상입니다." 출력
  • 그렇지 않으면 "일반 요금입니다." 출력

⚠️ 주의사항

  • if와 else 모두 콜론(:)으로 끝나야 함
  • 각 블록은 들여쓰기로 구분해야 함

if ~ elif ~ else 문이란?

  • 여러 개의 조건을 순차적으로 검사해야 할 때 사용하는 조건문
  • 첫 번째 조건이 참이면 해당 블록 실행 후 나머지는 무시
  • 첫 번째 조건이 거짓이면 다음 elif 조건을 검사
  • 모든 조건이 거짓이면 else 블록 실행

✅ 기본 구조

if 조건1:
    실행문장1
elif 조건2:
    실행문장2
elif 조건3:
    실행문장3
...
else:
    실행문장N

📌 예제 1

num = 5

if num > 0:
    print('양수')
elif num == 0:
    print('0')
else:
    print('음수')

📌 예제 2

things = ['credit', 'phone']
credit = True

if 'money' in things:
    print('버스를 타시오')
elif credit:
    print('버스를 타시오')
else:
    print('걸어가시오')

→ 결과: 버스를 타시오 출력됨
(첫 번째 조건은 거짓, 두 번째 조건 credit은 True이므로 해당 블록 실행)


💡 블록(Block)이란?

  • 조건이 참인 경우 실행할 여러 문장들을 묶는 방법
  • 파이썬에서는 들여쓰기(indentation)를 통해 블록을 구분함
  • 일반적으로 4칸의 공백(또는 탭 1개)을 사용
  • if, for, while 등의 제어문 다음에 오는 문장들은 들여쓰기를 통해 하나의 블록으로 묶인다
  • 블록 안에 있는 문장들은 조건이 참일 때 모두 실행된다
# 90점 이상이면 합격, 장학금도 받을 수 있음
score = 95

if score >= 90:
    print('합격')               # 들여쓰기 4칸
    print('장학금도 받을 수 있어요.')

중첩 조건문: if 문 안에 if ~ else 넣기

  • if 문 안에 또 다른 if 문을 들여쓰기를 통해 삽입할 수 있음
  • 조건이 복잡하거나 순차적인 판단이 필요할 때 사용

✅ 예제

"남자이고, 20살 이상이고, 현재 학교에 다니지 않으면 '군 입대 하자' 출력.
조건 중 하나라도 맞지 않으면 '종료' 메시지를 출력"

gender = input('남, 여 중 하나를 입력하세요:')
if gender == "남":
    age = int(input('현재나이를 입력:'))
    if age >= 20:
        school = input('재, 휴 중 하나를 입력하세요:')
        if school == '휴':
            print('군 입대 하자')
        else:
            print('종료')
    else:
        print('종료')
else:
    print('종료')

⚠️ 주의사항

  • 중첩될수록 들여쓰기(indent)에 특히 주의해야 함
  • 조건 순서가 바뀌면 로직 결과가 달라질 수 있음
gender = input('성별 남, 여:')
age = int(input('나이:'))
school = input('재학 중인지 휴학 중인지 입력하세요:')

if gender == '남' and age >=20 and school == '휴학':
    print('군대에 입대하십시오.')
else:
    print('종료합니다.')

✅ 예제

이름을 입력받아 미리 저장된 본인 이름과 같으면
👉 "본인입니다." 출력
아니면
👉 "다른 사람입니다." 출력

myname = '홍길동'
name = input('이름을 입력하세요:')

if name == myname:
    print("본인입니다.")
else:
    print("다른 사람입니다.")

👉 핵심 포인트

  • input() 함수를 통해 문자열 입력을 받음
  • == 연산자를 이용해 두 문자열을 비교
  • 비교 결과에 따라 if ~ else로 분기

✅ 예제 :동전 던지기 게임

import random

print('동전 던지기 게임 시작')
coin = random.randrange(2)
if coin == 0 :
    print('앞면입니다.')
else:
    print('뒷면입니다.')

print('게임이 종료되었습니다.')

✅ 예제 : 조건문 + input() 활용 예제: 도어락 프로그램

  • 사용자에게 비밀번호를 입력받음
  • 비밀번호가 '1018'이면 "문이 열린다." 출력
  • 그렇지 않으면 "비번이 틀림" 출력
pw = input('비번은 무엇입니다.? : ')
if pw == '1018':
    print('문이 열린다.')
else:
    print('비번이 틀림')

👉 핵심 포인트

  • input() 함수는 문자열로 값을 입력받기 때문에 숫자 비교 시에도 '1018'처럼 문자열로 비교해야 함
  • 숫자형으로 비교하고 싶다면 int(input())로 변환 필요

✅ 예제 : 이름을 입력받아 반 배정을 확인하는 조건문

이름을 입력받아:

  • 김수현 → 3학년 6반
  • 이승기 → 3학년 2반
  • 해당되지 않으면 → "학생 이름을 찾을 수 없습니다."

✅ 코드 1: 단순 조건 비교

name = input('이름은?')

if name == '김수현':
    print('3학년 6반으로 가시오')
elif name == '이승기':
    print('3학년 2반으로 가시오')
else:
    print('학생 이름을 찾을 수 없습니다.')
  • 조건을 하나씩 직접 비교
  • 학생 수가 많아지면 비효율적

✅ 코드 2: 리스트를 활용한 개선형

class_3_6 = ['김수현', '홍길동']
class_3_2 = ['이승기', '허유진']

name = input("학생 이름을 입력하세요: ")

if name in class_3_6:
    print(name, '학생은 3학년 6반에 이미 배정')
elif name in class_3_2:
    print(name, '학생은 3학년 2반에 이미 배정')
else:
    print(name, '학생은 배정되지 않았습니다.')
  • 각 반의 학생들을 리스트로 저장하고,
  • in 연산자를 사용해 간결하게 포함 여부 판단
  • 새로운 학생이 생기면 리스트에 추가만 하면 됨 → 확장성 높음

✅ 예제 : 비교연산자를 이용한 조건문- 주제: 15세 이상 영화 관람 가능 여부 판단

age = int(input('나이는 :'))  # 사용자로부터 정수형 나이 입력받기

if age >= 15:
    print('이 등급의 영화를 볼 수 있다.')
else:
    print('더 나이 들면 오세요')

✅ 예제 : 경찰 체력 검정 - 기준 이상일 경우 합격 가능성 높음 출력

100m 기록 (초) 13.6초 이하
1000m 기록 (초) 235초 이하
윗몸일으키기 (회) 51회 이상
좌우 악력 (kg) 56kg 이상
팔굽혀펴기 (회) 46회 이상
m100 = float(input('100m 기록(초) :'))
m1000 = float(input('1000m 기록(초) :'))
situp = int(input('윗몸일으키기 기록(회) : '))
gr_power = float(input('좌우 악력 기록(kg) : '))
pushup = int(input('팔굽혀펴기 기록(회) : '))

if m100 <= 13.6 and m1000 <= 235 and situp >= 51 and gr_power >= 56 and pushup >= 46:
    print("합격 가능성이 매우 높습니다.")
else:
    print("합격 가능성이 낮습니다.")

출력 결과

100m 기록(초): 13.6  
1000m 기록(초): 23.5  
윗몸일으키기 기록(회): 52  
좌우 악력 기록(kg): 56  
팔굽혀펴기 기록(회): 56  

➡️ 합격 가능성이 매우 높습니다.

핵심 포인트

  • 비교 연산자: <=, >=
  • 논리 연산자: and → 모든 조건이 참일 때만 전체가 참
  • float() vs int() → 입력값 형식에 맞게 변환 필요

✅ 예제: 자판기 프로그램 만들기

  • 메뉴를 출력하고
  • 사용자가 금액과 음료를 입력하면
  • 음료를 제공하고 잔돈을 계산하여 출력

1. 사이다 700원
2. 콜라 800원
3. 물 1200원

print("사이다-700원 콜라-800원 물-1200원")
money = int(input("얼마를 입력하시겠습니까? : "))
drink = int(input("선택) 1-사이다 2-콜라 3-물 : "))

if drink == 1 and money >= 700:
    print("사이다가 나왔습니다. 덜컹")
    money = money - 700
elif drink == 2 and money >= 800:
    print("콜라가 나왔습니다. 덜컹")
    money = money - 800
elif drink == 3 and money >= 1200:
    print("물이 나왔습니다. 덜컹")
    money = money - 1200
else:
    print("음료수를 뽑을 수 없습니다.")

if money >= 0:
    print("잔돈", money, "원 반환합니다.")
사이다-700원 콜라-800원 물-1200원  
얼마를 입력하시겠습니까? : 2000  
선택) 1-사이다 2-콜라 3-물 : 3  
물이 나왔습니다. 덜컹  
잔돈 800 원 반환합니다.

코드 설명

  • input() 함수로 금액과 선택 번호 입력 받음
  • if ~ elif ~ else로 음료 조건 판단
  • 음료 가격만큼 차감 후 잔돈 출력

✅ 예제: 비만기준 프로그램

✅ 목표:

  • 이름, 키(cm), 몸무게(kg)를 입력받고
  • BMI를 계산하여
  • 해당 BMI 수치에 따라 비만 상태를 판단해 출력

→ 코드에서는 height / 100을 통해 cm를 m로 변환한 뒤 제곱함

name = input("이름을 입력하세요 : ")
height = int(input("키(cm)를 입력하세요 : "))
weight = int(input("몸무게(kg)를 입력하세요 : "))
bmi = weight / (height / 100) ** 2

if bmi > 30:
    obe = "고도비만"
elif bmi > 25:
    obe = "비만"
elif bmi > 23:
    obe = "과체중"
elif bmi > 18.5:
    obe = "정상"
else:
    obe = "저체중"

print()
print(name + "님의 키는", height, "cm이고 몸무게는", weight, "kg 입니다.")
print("BMI 지수는", round(bmi, 2), "입니다.", obe, "입니다.")
이름을 입력하세요 : 파이썬  
키(cm)를 입력하세요 : 176  
몸무게(kg)를 입력하세요 : 73  

파이썬님의 키는 176 cm이고 몸무게는 73 kg 입니다.  
BMI 지수는 23.57 입니다. 과체중 입니다.

✅ 예제:  짝수인지 홀수인지 판별하기

사용자로부터 정수를 입력받아,

  • 짝수이면 "짝수입니다."
  • 홀수이면 "홀수입니다."
    를 출력하는 프로그램을 작성하세요.
num = int(input("정수를 입력하세요: "))

if num % 2 == 0:
    print("짝수입니다.")
else:
    print("홀수입니다.")

🔍 num % 2는 2로 나눈 나머지를 의미함. 짝수는 나머지가 0.


✅ 예제:  자릿수 판별하기

number = int(input("숫자를 입력 하세요 : "))
if number >= 1000:
    print("세 자릿수 이상")
elif number >= 100:
    print("세 자릿수")
elif number >= 10:
    print("두 자릿수")
elif number >= 1:
    print("한 자릿수")
else:
    print("자연수를 입력 하세요.")

 

728x90
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
반응형