Python_ 조건문(if, if~else, if~elif)

장해수·2023년 6월 6일
  1. 제어문
  • 프로그램을 제어하는 구문
    1) 조건문: 특정 조건에 따라 프로그램을 분기하여 수행
    2) 반복문: 프로그램을 반복 수행
  1. 조건문 종류
    1) if문: 단일 조건
  • if 조건식:
    실행문 (> 코드블럭)
  • 조건식이 True 일 경우 실행, False 일 경우 실행 X
if 10 > 5:
    print('10은 5보다 크다.')
10은 5보다 크다.

2) if ~ else문: 양자택일, 조건식 결과에 따라 둘 중 하나가 실행됨

  • if 조건식:
    실행문1
    else:
    실행문2
  • 조건식이 True > 실행문1 실행, 조건식이 False 실행문2 실행
passScore = 80
myScore = int(input('점수: '))

if myScore >= passScore:
    print('PASS')
else:
    print('FAIL')
점수: 100
PASS

점수: 75
FAIL

cf) pass 키워드: 실행문이 입력되지 않은 경우 'pass'를 입력하면 해당 구문 실행 시 오류 메시지가 뜨지 않음.

if myScore >= passScore:
   	pass
else:
    pass
  • 조건식(삼항연산자)과 if ~ else문 비교
    (1) 조건식 결과에 따른 실행만 하는 경우
print('포인트 사용 가능') if userPoint >= minAblePoint else print('포인트 사용 불가능')

(2) 조건식 결과를 변수에 할당하는 경우

result = '가능' if userPoint >= minAblePoint else '불가능'
print('포인트 사용 가능 여부: {}'.format(result))

(3) 모든 조건식(삼항 연산자)는 if ~ else문으로 변경할 수 있음.

print('포인트 사용 가능') if userPoint >= minAblePoint else print('포인트 사용 불가능')

if serPoint >= minAblePoint: 
   print('포인트 사용 가능') 
else:
   print('포인트 사용 불가능')
result = '가능' if userPoint >= minAblePoint else '불가능'
print('포인트 사용 가능 여부: {}'.format(result))

if userPoint >= minAblePoint:
	result = '가능'
else: 
	result = 불가능'
print('포인트 사용 가능 여부: {}'.format(result))

(4) 모든 if ~ else문은 조건식으로 변경할 수 있는 것은 아님.

  • 실행문이 여러 개인 경우, 단일 조건식으로 코딩하기 어려움.
if userPoint >= minAblePoint: 
	result = '가능'
else: 
	result = 불가능'
    lackPoint = minAblePoint - userPoint
    print('포인트가 {} 부족합니다.'.format(lackPoint))
print('포인트 사용 가능 여부: {}'.format(result))

3) if ~ elif문: 다자택일(다중조건), 여러가지 조건식 결과에 따라 실행문이 결정됨.

score = int(input('시험 성적: '))
grades = ''

if score >= 90:
    grades = 'A'
elif score >= 80:
    grades = 'B'
elif score >= 70:
    grades = 'C'
elif score >= 60:
    grades = 'D'
else:
    grades = 'F'

print('시험 성적: {}점, \t학점: \'{}\''.format(score, grades))
시험 성적: 95
시험 성적: 95점, 	학점: 'A'

시험 성적: 75
시험 성적: 75점, 	학점: 'C'

시험 성적: 40
시험 성적: 40점, 	학점: 'F'
  • 다자택일 사용 시 주의할 점
    (1) 조건식 순서가 중요함.
    조건식을 순차적으로 해석하기 때문에 순서가 달라지면 결과가 바뀔 수 있음.
    (2) 조건 범위를 명시함.
score = int(input('시험 성적: '))
grades = ''

if score >= 90 and score < 100:
    grades = 'A'
elif score >= 80 and score < 90:
    grades = 'B'
elif score >= 70 and score < 80:
    grades = 'C'
elif score >= 60 and score < 70:
    grades = 'D'
else:
    grades = 'F'

print('시험 성적: {}점, \t학점: \'{}\''.format(score, grades))
  1. 실습
    예제 1) 국어, 영어, 수학 점수를 입력하고 평균이 90점 이상이면 '참 잘했어요.'를 출력하는 코드를 작성하자.
  • 코드
kor = int(input('국어: '))
eng = int(input('영어: '))
mat = int(input('수학: '))
avg = (kor + eng + mat) / 3

print('평균: {}점'.format(avg))
if avg >= 90:
    print('참 잘했어요.')
  • 결과
국어: 100
영어: 100
수학: 100
평균: 100.0점
참 잘했어요.
국어: 70
영어: 80
수학: 80
평균: 76.66666666666667점

예제 2) 실내 온도를 입력하고 온도가 28도 이상이면 '냉방 작동'이 출력되고, 20도 이하면 '난방 작동'이 출력되는 코드를 작성하자.

  • 코드
innerTemp = int(input('실내 온도: '))
highTemp = 28
lowTemp = 20

if innerTemp >= highTemp:
    print('냉방 작동')
if innerTemp <= lowTemp:
    print('난방 작동')
실내 온도: 30
냉방 작동

실내 온도: 17
난방 작동

예제 3) 나이가 65세 이상이면 교통 요금 무료를 적용하는 프로그램을 만들어보자.

  • 코드
age = int(input('나이: '))
seniorAge = 65

if age >= seniorAge:
    print('무료 대상 승객 입니다.')
else:
    print('유료 대상 승객 입니다.')
  • 결과
나이: 62
유료 대상 승객 입니다.

나이: 70
무료 대상 승객 입니다.

예제 4) 소수점 첫번째 자리에서 반올림하는 프로그램을 만들어보자.

  • 코드
floatNum = float(input('소수 입력: '))

if floatNum - int(floatNum) >= 0.5:
    print('올림: {}'.format(int(floatNum) + 1))
else:
    print('버림: {}'.format(int(floatNum)))
  • 결과
소수 입력: 1.27
버림: 1

소수 입력: 9.55
올림: 10

예제 5) 비가 올 확률을 입력하고 그 확률이 55% 이상이면 '우산을 챙기세요.'를, 그렇지 않으면 '양산을 챙기세요.'를 출력하는 코드를 작성하자.
(조건식, if ~ else문 모두 작성)
(1) 조건식

  • 코드
print('우산을 챙기세요.') if rainPercentage >= minRainPercentage else print('양산을 챙기세요.')
  • 결과
비가 올 확률: 55
우산을 챙기세요.

(2) if ~ else문

  • 코드
if rainPercentage >= minRainPercentage:
    print('우산을 챙기세요.')
else:
    print('양산을 챙기세요.')
  • 결과
비가 올 확률: 45
양산을 챙기세요.

예제 6)

  • 코드
lowTemp = int(input('최저 기온: '))
highTemp = int(input('최고 기온: '))
diffTemp = highTemp - lowTemp

if diffTemp >= 11:
    print('일교차: {}도'.format(diffTemp))
    print('감기 조심하세요.')
else:
    print('일교차: {}도'.format(diffTemp))
    print('산책하기 좋은 날씨입니다.')
  • 결과
최저 기온: 10
최고 기온: 22
일교차: 12도
감기 조심하세요.

최저 기온: 9
최고 기온: 18
일교차: 9도
산책하기 좋은 날씨입니다.

예제 7) 계절을 입력하면 영어로 번역되는 프로그램을 만들어보자.

  • 코드
print('봄 | 여름 | 가을 | 겨울')
seasonStr = input('계절: ')

if seasonStr == '봄':
    print('{}: {}'.format(seasonStr, 'Spring'))
elif seasonStr == '여름':
    print('{}: {}'.format(seasonStr, 'Summer'))
elif seasonStr == '가을':
    print('{}: {}'.format(seasonStr, 'Fall'))
elif seasonStr == '겨울':
    print('{}: {}'.format(seasonStr, 'Winter'))
else:
    print('검색할 수 없습니다.')
  • 결과
봄 | 여름 | 가을 | 겨울
계절: 여름
여름: Summer

봄 | 여름 | 가을 | 겨울
계절: 초봄
검색할 수 없습니다.

예제 8) 키오스크에서 메뉴를 선택하면 영수증이 출력되는 프로그램을 만들어 보자.

  • 코드
print('1. 카페라떼(3.5) \t 2. 에스프레소(3.0) \t 3. 아메리카노(2.0) \t 4. 곡물라떼(4.0) \t 5. 밀크티(4.3)')
userSelectNumber = int(input('메뉴 선택: '))


if userSelectNumber == 1:
    print('-' * 30)
    print('메뉴: 카페라떼 \n가격: 3,500원')
    print('-' * 30)
elif userSelectNumber == 2:
    print('-' * 30)
    print('메뉴: 에스프레소 \n가격: 3,000원')
    print('-' * 30)
elif userSelectNumber == 3:
    print('-' * 30)
    print('메뉴: 아메리카노 \n가격: 2,000원')
    print('-' * 30)
elif userSelectNumber == 4:
    print('-' * 30)
    print('메뉴: 곡물라떼 \n가격: 4,000원')
    print('-' * 30)
else:
    print('-' * 30)
    print('메뉴: 밀크티 \n가격: 4,300원')
    print('-' * 30)
  • 결과
1. 카페라떼(3.5) 	 2. 에스프레소(3.0) 	 3. 아메리카노(2.0) 	 4. 곡물라떼(4.0) 	 5. 밀크티(4.3)
메뉴 선택: 3
------------------------------
메뉴: 아메리카노 
가격: 2,000원
------------------------------

1. 카페라떼(3.5) 	 2. 에스프레소(3.0) 	 3. 아메리카노(2.0) 	 4. 곡물라떼(4.0) 	 5. 밀크티(4.3)
메뉴 선택: 5
------------------------------
메뉴: 밀크티 
가격: 4,300원
------------------------------

예제 9) 자동차 배기량에 따라 세금을 부과한다고 할 때, 다음 표를 보고 배기량을 입력하면 세금이 출력되는 프로그램을 만들어보자.

  • 코드
carDisplacement = int(input('자동차 배기량: '))

if carDisplacement < 1000:
    print('세금: 100,000원')
elif carDisplacement >= 1000 and carDisplacement <2000:
    print('세금: 200,000원')
elif carDisplacement >= 2000 and carDisplacement <3000:
    print('세금: 300,000원')
elif carDisplacement >= 3000 and carDisplacement <4000:
    print('세금: 400,000원')
elif carDisplacement >= 4000 and carDisplacement <5000:
    print('세금: 500,000원')
else:
    print('세금: 600,000원')
  • 결과
자동차 배기량: 5500
세금: 600,000원

자동차 배기량: 3300
세금: 400,000원

자동차 배기량: 950
세금: 100,000원
profile
데이터 진행시켜

0개의 댓글