티스토리 뷰
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
반응형