if문을 else와 짝으로 사용할 수 있는데 문법 형식은 아래와 같다.
if 조건식 :
조건식이 참(True)일때 실행 될 코드
else:
조건식이 거짓(False)일 때 실행 될 코드
elif 구문
if ~ else ~ 형태의 조건에 따라 실행 코드 변경을 지시할 일 도 많습니다만 if ~ else~ ~ 형태는 조건에 따라 둘 중 하나의 작어을 실행하는 것입니다. 세상에는 그렇지 않은 경우가 훨씬 더 많습니다. 예를 들어, 한 해를 4개의 시간 구간으로 나누어 1월 ~3월을 1분기, 4월 ~6월을 2분기, 7월 ~ 9월을 3분기, 10월 ~12월을 4분기로 표현하기로 약속하고 각 분기별로 해야할 일이 다르다고 가정해서 코드를 작성해 보겠다.
s_month = input('지금 몇 월 달입니까?')
month = int(s_month)
if 1 <= month <=3:
print('[1분기] - 진정한 새해의 시작인 봄을 준비하세요')
elif 4 <= month <= 6:
print('[2분기] - 년 초에 세웠던 일들을 시작하세요.')
elif 7 <= month <= 9:
print('[3분기] - 준비해서 시작한 일들 중 일부는 성과가 나기 시작할 겁니다.')
print(' - 첫 수확을 맛보면서 나머지 일들에 대해서도 끝까지 노력하십시오.')
else:
print('[4분기] - 진정한 수확의 시기입니다.마무리 잘 해서 잘 걷어들이시고 한 해 마무리 잘 하세요.')
==>
지금 몇월 달 입니까? 12
[4분기] - 진정한 수확의 시기입니다.마무리 잘 해서 잘 걷어들이시고 한 해 마무리 잘 하세요.
- if 조건문을 효율적으로 사용하기
jumsu = input('당신의 점수를 입력하세요 :')
i_jumsu = int(jumsu)
if i_jumsu >= 90:
print('와우 대단하시네요. 어디가서 자랑하셔도 되곘어요')
elif i_jumsu >= 80:
print('이정도면 충분합니다. 다 밥머고 살아요')
elif i_jumsu >= 70:
print('공부 잘 한다고 다 잘 사는거 아닙니다.')
elif i_jumsu >= 60:
print('학교 다닐 때 성적 좋다고 사회에서 성공하나요. 걱정하지 말아요')
elif i_jumsu >= 50:
print('무슨 일 이어요? 별일 아니죠?')
else:
print('시대를 앞서가는 혁명가시군요!')
print('프로그램 종료')
==>
당신의 점수를 입력하세요 :22
시대를 앞서가는 혁명가시군요!
프로그램 종료
- False 로 변환되는 값
if 0:
print('조건이 True')
else:
print('조건이 False')
==>
조건이 False
condition = 3>2
print('조건:', condition)
if condition:
print('조건이 True')
else:
print('조건이 False')
==>
조건: True
조건이 True
그렇다면 if 문의 조건식에 문자열 데이터를 넘기면 어떻게 인식하는가
if 'a':
print('조건이 True')
else:
print('조건이 False')
==>
조건이 True
if '':
print('조건이 True')
else:
print('조건이 False')
==>
조건이 False
Quiz1
등수에 따라 상품이 있다. 3등은 상품권 5만원 2등은 상품권 5만원에 핸드폰 1등은 상품권 5만원, 핸드폰 그리고 노트북 등수 입력시 해당 상품 출력되도록 코드 작성
p = input('몇 등?')
p = int(p)
print('받으실 상품은 ', end = '')
prize = ''
if p <= 3:
prize += '상품권 5만원, '
if p <=2:
prize += '핸드폰, '
if p == 1:
prize += '노트북, '
prize = prize[:-2]
print(prize + '입니다.')
==>
몇 등?1
받으실 상품은 상품권 5만원, 핸드폰, 노트북입니다.
- 키워드 ‘pass’는 ‘아무것도 안함 이라는 뜻으로 쓰이기도 하고 어떻게 코딩 해야할지 아직 생각중이다. 나중에 여기 코드를 넣을 테니 일단은 아무것도 하지 말고 넘어가자 라는 의도이다. 전자의 의미는 코드 완성한거야. 이 때 아무것도 안할거야 이며 후자는 일단 그냥 넘어가자 라는 뜻이다.
your_choice = input('다음 중 지금 제일 먹고 싶은 것을 고르세요')
print('\\n')
print('당신의 선택은 : "{}"입니다. '. format(your_choice))
if your_choice == '수박':
print('{}! 좋죠'.format(your_choice))
elif your_choice == '참외':
print('{}! 좋죠. 그런데 참외를 우리나라 사람만 먹는다고 하던데요')
elif your_choice == '감':
pass
else:
print('목록에 없는 것을 선택하셨습니다.')
print('끝')
==>
다음 중 지금 제일 먹고 싶은 것을 고르세요감
당신의 선택은 : "감"입니다.
끝
Quiz2
지난 주말에 식물원에 다녀왔다. 입장료를 받는다. 어린이는 만 7세 미만은 무료이고 만 7세부터 만 12세까지 2000원 만 12세 이상부터 만 18세 미만까지 400원 만 18세부터 만 64세미만 까지 8000원 만 65세 이상은 무료
만 나이를 입력하면 나이에 맞는 이용료를 출력하는 프로그램을 작성하라
age = int(input('당신의 만 나이는? :'))
if age <7 :
price = '무료'
elif age <=12:
price = 2000
elif age < 18:
price = 4000
elif age<65:
price = 8000
else:
price = '무료'
print('만 나이가 {}이신 당신의 요금은 {}입니다.'.format(age, price))
==>
당신의 만 나이는? :18
만 나이가 18이신 당신의 요금은 8000입니다.
Quiz3
점수에 따라 A,B,C,D,F 학점을 부여하려고 한다.
90~100은 A, 즉 100점을 포함한 90점대
80~90 미만까지는 B,즉 80점대
70~80 미만까지는 C, 즉 70점대
60~70 미만까지는 D, 즉 60점대
0~60 미만은 F
실수형태로 점수를 입력받아서 A, B, C, D, F를 출력하는 코드를 작성하시오.
예를들어 점수가 82.4인경우 B학점이다.
jumsu = float(input('점수를 입력하세요 : '))
idx = int(jumsu/10)
idx = 9 if idx ==10 else idx
grades = "FFFFFFDCBA"
print(grades[idx])
==>
점수를 입력하세요 : 66
12
<참고>
# 틀린코드
x = 1
if type(x) == 'int':
print('정수')
elif type(x) =='str':
print('문자열')
else:
print('몰라')
==>
몰라
# 올바른 코드
x = 'ksp'
if type(x) is int:
print('정수')
elif type(x) is str:
print('문자열')
else:
print('몰라')
==>
문자열
- type을 알아보기 위해선 단순히 비교를 하면 안되고 is를 사용해야한다.
'빅데이터 분석가 양성과정 > Python' 카테고리의 다른 글
Ch04-2 반복문 / 딕셔너리와 반복문 (0) | 2024.07.04 |
---|---|
Ch04-1 반복문 / 리스트와 반복문 (0) | 2024.07.04 |
Ch 03-1 조건문 / 불 자료형과 if 조건문 (0) | 2024.07.04 |
Ch02-4 자료형 / 숫자와 문자열의 다양한 기능 (0) | 2024.07.04 |
Ch02-3 자료형 / 변수와 입력 (0) | 2024.07.04 |