조건식이란, 어떤 조건에 따라 실행이 분기 되는 식
a if 조건식 else b -> 조건식의 결과가 True 이면 a실행, 그렇지 않으면 b
num1 = 10
num2 = 100
numResult = Treu if num1 > num2 else False
print('num1 > num2 : {}'.format(numResult))
print('num1은 num2보다 크다.') if numResult else print('num1은 num2보다 크지 않다.')
=====================================================================================
num1 > num2 : False
num1은 num2보다 크지 않다.
limitSnowAmount = 30
snowAmount = int(input('적설량 입력(mm) : '))
print('적설량 : {}mm, {}'.format(snowAmount, '대설 경보 발령')) if snowAmount >= limitSnowAmount else \
print('적설량 : {}mm, {}'.format(snowAmount, '적설 경보 해제'))
===============================================================
적설량 입력(mm) : 35
적설량 : 35mm, 대설 경보 발령
import operator
passScore1 = 60
passScore2 = 70
kor = int(input('국어 점수 입력 : '))
eng = int(input('영어 점수 입력 : '))
mat = int(input('수학 점수 입력 : '))
totalScore = kor + eng + mat
scoreAvg = totalScore / 3
print('국어 : PASS') if operator.ge(kor, passScore1) else print('국어 : FAIL')
print('영어 : PASS') if operator.ge(eng, passScore1) else print('영어 : FAIL')
print('수학 : PASS') if operator.ge(mat, passScore1) else print('수학 : FAIL')
print('시험 : PASS') if operator.ge(scoreAvg, passScore2) else print('시험 : FAIL')
print('총점 : %d, 평균 : %.2f' % (totalScore,scoreAvg ))
========================================================
국어 점수 입력 : 55
영어 점수 입력 : 65
수학 점수 입력 : 75
국어 : FAIL
영어 : PASS
수학 : PASS
시험 : FAIL
총점 : 195, 평균 : 65.00
특정 조건에 따라 프로그램을 분기한다.
조건문의 종류
if문 : 단일조건
if 조건문 :
실행문(코드블럭)
if ~ else문 : 양자택일
if ~ elif문 : 다자택일(다중조건)
kor = int(input('국어 점수 입력 : '))
eng = int(input('영어 점수 입력 : '))
mat = int(input('수학 점수 입력 : '))
avg = (kor + eng + mat) / 3
print('평균 : {}'.format(avg))
if avg >= 90:
print('참 잘했어요~!')
========================
국어 점수 입력 : 90
영어 점수 입력 : 85
수학 점수 입력 : 100
평균 : 91.66666666666667
참 잘했어요~!
highTemperature = 28
lowTemperature = 20
innerTemperature = int(input('실내 온도 입력 : '))
if innerTemperature >= highTemperature:
print('냉방 작동!')
if innerTemperature <= lowTemperature:
print('난방 작동!')
=======================================
실내 온도 입력 : 15
난방 작동!
if ~ else문 : 조건식 결과에 따라 둘 중에 하나가 실행됨.
seniorAge = 65
passengerAge = int(input('나이 입력 : '))
if passengerAge >= seniorAge:
print('무료 대상 승객입니다.')
else:
print('유료 대상 승객입니다.')
==========================================
나이 입력 : 45
유료 대상 승객입니다.
모든 조건식(삼항연산자)은 if ~ else문으로 변경할 수 있다.
but, 모든 if ~ else문이 조건식으로 변경할 수 있는건 아니다.
rainPercentage = int(input('비올 확률 입력 : '))
minRainPercentage = 55
print('우산을 챙기세요') if rainPercentage >= minRainPercentage else print('양산을 챙기세요') > 조건식
if rainPercentage >= minRainPercentage: > if ~ else문
print('우산을 챙기세요.')
else:
print('양산을 챙기세요.')
=====================================
비올 확률 입력 : 45
양산을 챙기세요
양산을 챙기세요.
lowTemperature = int(input('최저 기온 입력 : '))
highTemperature = int(input('최고 기온 입력 : '))
dailyTemperature = highTemperature - lowTemperature
if dailyTemperature >= 11:
print('일교차 : {}'.format(dailyTemperature))
print('감기 조심하세요')
else:
print('일교차 : {}'.format(dailyTemperature))
print('산책하기 좋은 날씨입니다.')
=================================================
최저 기온 입력 : 10
최고 기온 입력 : 20
일교차 : 10
산책하기 좋은 날씨입니다
if~elit : 여러 가지 조건식 결과에 따라 실행문이 결정됨.
print('계절 : 봄, 여름, 가을, 겨울')
seasonStr = input('계졀 입력 : ')
if seasonStr == '봄':
print('{} : {}'.format('봄', 'Spring'))
elif seasonStr == '여름':
print('{} : {}'.format('여름', 'Summer'))
elif seasonStr == '가을':
print('{} : {}'.format('가을', 'Fall'))
elif seasonStr == '겨울':
print('{} : {}'.format('겨울', 'Winter'))
else:
print('검색할 수 없습니다.')
=================================================
계절 : 봄, 여름, 가을, 겨울
계졀 입력 : 봄
봄 : Spring
userSelectNumber = int(input('메뉴 선택 : '))
print('-'*30)
if userSelectNumber == 1:
print('메뉴 : {} \n 가격 : {}'.format('카페라떼', '3,500원'))
elif userSelectNumber == 2:
print('메뉴 : {} \n 가격 : {}'.format('에스프레소', '3,000원'))
elif userSelectNumber == 3:
print('메뉴 : {} \n 가격 : {}'.format('아메리카노', '2,000원'))
elif userSelectNumber == 4:
print('메뉴 : {} \n 가격 : {}'.format('곡물라떼', '4,000원'))
elif userSelectNumber == 5:
print('메뉴 : {} \n 가격 : {}'.format('밀크티', '4,300원'))
else:
print('없는 메뉴 입니다.')
print('-'*30)
==========================================================================
1.카페라떼(3.5) 2.에스프레소(3.0) 3.아메리카노(2.0) 4.곡물라떼(4.0) 5.밀크티(4.3)
메뉴 선택 : 4
------------------------------
메뉴 : 곡물라떼
가격 : 4,000원
------------------------------
carDisplacement = int(input('자동차 배기량 입력 : '))
if carDisplacement < 1000:
print('세금 : 100,000원')
elif carDisplacement < 2000 and carDisplacement >= 1000:
print('세금 : 200,000원')
elif carDisplacement < 3000 and carDisplacement >= 2000:
print('세금 : 300,000원')
elif carDisplacement < 4000 and carDisplacement >= 3000:
print('세금 : 400,000원')
elif carDisplacement < 5000 and carDisplacement >= 4000:
print('세금 : 500,000원')
elif carDisplacement >= 5000:
print('세금 : 600,000원')
===================================================================
자동차 배기량 입력 : 4500
세금 : 500,000원
selectNum = (int(input('출퇴근 대상자인가요? 1.Yes \t 2.No : ')))
if selectNum == 1:
print('교통수단을 선택하세요')
trans = int(input('1.도보, 자전거 \t 2.버스, 지하철 \t 3.자가용 : '))
if trans == 1:
print(' 세금 감면 5%')
elif trans == 2:
print(' 세금 감면 3%')
elif trans == 3:
print(' 추가 세금 1%')
elif selectNum == 1:
print('세금 변동 없습니다.')
=============================================================
출퇴근 대상자인가요? 1.Yes 2.No : 1
교통수단을 선택하세요
1.도보, 자전거 2.버스, 지하철 3.자가용 : 2
세금 감면 3%
for i in range(9):
print('{} * {} = {}'.format(6, (i+1),6 * (i+1)))
=========================================================
6 * 1 = 6
6 * 2 = 12
6 * 3 = 18
6 * 4 = 24
6 * 5 = 30
6 * 6 = 36
6 * 7 = 42
6 * 8 = 48
6 * 9 = 54
startNum = int(input('반복의 시작 입력 : '))
endNum = int(input('반복의 끝 입력 : '))
for i in range(startNum,(endNum+1)):
print(i)
===========================================
반복의 시작 입력 : 5
반복의 끝 입력 : 9
5
6
7
8
9
startNum = int(input('반복의 시작 입력 : '))
endNum = int(input('반복의 끝 입력 : '))
for i in range(startNum,(endNum+1),2):
print(i)
===========================================
반복의 시작 입력 : 5
반복의 끝 입력 : 15
5
7
9
11
13
15
n = 1
while n < 101:
if n % 2 == 0:
print('{}은 2의 배수이다.'.format(n))
if n % 3 == 0:
print('{}은 3의 배수이다.'.format(n))
n += 1
====================================================
2은 2의 배수이다.
3은 3의 배수이다.
4은 2의 배수이다.
6은 2의 배수이다.
6은 3의 배수이다.
8은 2의 배수이다.
9은 3의 배수이다.
10은 2의 배수이다.
12은 2의 배수이다.
12은 3의 배수이다.
14은 2의 배수이다.
15은 3의 배수이다.
16은 2의 배수이다.
18은 2의 배수이다.
18은 3의 배수이다.
20은 2의 배수이다.
21은 3의 배수이다.
22은 2의 배수이다.
24은 2의 배수이다.
24은 3의 배수이다.
26은 2의 배수이다.
27은 3의 배수이다.
28은 2의 배수이다.
30은 2의 배수이다.
30은 3의 배수이다.
32은 2의 배수이다.
33은 3의 배수이다.
34은 2의 배수이다.
36은 2의 배수이다.
36은 3의 배수이다.
38은 2의 배수이다.
39은 3의 배수이다.
40은 2의 배수이다.
42은 2의 배수이다.
42은 3의 배수이다.
44은 2의 배수이다.
45은 3의 배수이다.
46은 2의 배수이다.
48은 2의 배수이다.
48은 3의 배수이다.
50은 2의 배수이다.
51은 3의 배수이다.
52은 2의 배수이다.
54은 2의 배수이다.
54은 3의 배수이다.
56은 2의 배수이다.
57은 3의 배수이다.
58은 2의 배수이다.
60은 2의 배수이다.
60은 3의 배수이다.
62은 2의 배수이다.
63은 3의 배수이다.
64은 2의 배수이다.
66은 2의 배수이다.
66은 3의 배수이다.
68은 2의 배수이다.
69은 3의 배수이다.
70은 2의 배수이다.
72은 2의 배수이다.
72은 3의 배수이다.
74은 2의 배수이다.
75은 3의 배수이다.
76은 2의 배수이다.
78은 2의 배수이다.
78은 3의 배수이다.
80은 2의 배수이다.
81은 3의 배수이다.
82은 2의 배수이다.
84은 2의 배수이다.
84은 3의 배수이다.
86은 2의 배수이다.
87은 3의 배수이다.
88은 2의 배수이다.
90은 2의 배수이다.
90은 3의 배수이다.
92은 2의 배수이다.
93은 3의 배수이다.
94은 2의 배수이다.
96은 2의 배수이다.
96은 3의 배수이다.
98은 2의 배수이다.
99은 3의 배수이다.
100은 2의 배수이다.
gugudan = int(input('희망 구구단 입력 : '))
n = 1
while n < 10:
result = gugudan * n
print('{} * {} = {}'.format(gugudan, n, result))
n += 1
===========================================================
희망 구구단 입력 : 9
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
for문이 적합한 경우
while문이 적합한 경우
currentThicness = 30
rotationCount = 0
removeThickness = 0.15
while currentThicness >= 20:
rotationCount += 1
currentThicness -= removeThickness
saferRotationCount = rotationCount - 1
print('운행 가능 횟수 : {}'.format(saferRotationCount))
===============================================================
운행 가능 횟수 : 66
import random #random 모듈 사용
sum = 0
date = 0
flag = True
while flag:
patientCount = random.randint(50, 100) #50~100사이 정의
sum += patientCount
date += 1
print('날짜 : {}, 오늘 환자 수 : {}, 누적 환자 수 : {}'.format(date, patientCount, sum))
if sum >= 10000:
flag = False
===============================================================================================
날짜 : 1, 오늘 환자 수 : 85, 누적 환자 수 : 85
날짜 : 2, 오늘 환자 수 : 84, 누적 환자 수 : 169
날짜 : 3, 오늘 환자 수 : 92, 누적 환자 수 : 261
날짜 : 4, 오늘 환자 수 : 83, 누적 환자 수 : 344
날짜 : 5, 오늘 환자 수 : 70, 누적 환자 수 : 414
날짜 : 6, 오늘 환자 수 : 63, 누적 환자 수 : 477
날짜 : 7, 오늘 환자 수 : 61, 누적 환자 수 : 538
날짜 : 8, 오늘 환자 수 : 55, 누적 환자 수 : 593
(생략)
날짜 : 125, 오늘 환자 수 : 86, 누적 환자 수 : 9328
날짜 : 126, 오늘 환자 수 : 76, 누적 환자 수 : 9404
날짜 : 127, 오늘 환자 수 : 61, 누적 환자 수 : 9465
날짜 : 128, 오늘 환자 수 : 89, 누적 환자 수 : 9554
날짜 : 129, 오늘 환자 수 : 89, 누적 환자 수 : 9643
날짜 : 130, 오늘 환자 수 : 86, 누적 환자 수 : 9729
날짜 : 131, 오늘 환자 수 : 88, 누적 환자 수 : 9817
날짜 : 132, 오늘 환자 수 : 61, 누적 환자 수 : 9878
날짜 : 133, 오늘 환자 수 : 89, 누적 환자 수 : 9967
날짜 : 134, 오늘 환자 수 : 92, 누적 환자 수 : 10059
😓 앞선 수업들은 크게 어렵지 않았는데 반복문부터 조금씩 어려워지는 느낌이다..!
실습문제 보고 바로 머리에 그려지지 않고 한참을 생각하게 된다, 지금은 강의 답안을 보며 이해하기 급급한데 다양한 문제를 풀어보면 나아지겠지,,?
❗복습대상 : 반복문, 루프
이 글은 제로베이스 데이터 분석 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.