[제로베이스 데이터 분석 스쿨 2기] Python(feat. 조건문(if), 양자택일 (if~else), 다자택일 (if~elif), 반복문 (횟수, 조건), 반복문 제어(continue, else, break, 중첩 반복문)

박세우·2024년 1월 8일

조건식

참일 경우 앞이 출력, 불인 경우 뒤가 출력

num1 = 10
num2 = 100

numResult = True if num1> num2 else False
print('num1 > num2: {}'.format(numResult))
OR
print('num1 > num2 크다') if numResult else print('num2> num1')

실습

**국어, 영어, 수학 점수를 입력하면 조건식을 이용해서 과목별 결과와 전체 결과를 출력하는 코드를 작성해보자. (과목별 합격 점수: 60점, 전페 합격 평균 점수: 70점)**

import operator
passScore = 60
passAvgScore = 70

kor = int(input('국어 점수: '))
eng = int(input('영어 점수: '))
math = int(input('수학 점수: '))
totalScore = kor + eng + math
avg = totalScore/3

print('국어: PASS')if operator.gt(kor, passScore) else print('국어: FAIL')
print('영어: PASS')if operator.gt(eng, passScore) else print('영어: FAIL')
print('수학: PASS')if operator.gt(math, passScore) else print('수학: FAIL')
print('시험: PASS')if operator.gt(avg, passAvgScore) else print('시험: FAIL')
print('총점: %d, 평균: %.2f' % (totalScore, avg))

조건문 (if문)

if문 -> 단일조건
실습

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

highTem = 28
lowTem = 20
insideTem = int(input('실내 온도 입력: '))

if insideTem <= lowTem:
    print('난방 작동')

if insideTem >= highTem:
    print('냉방 작동')

양자택일 조건문 (if~else문)

if my_score >= pass_score:
    print('PASS')
else:
    print('FAIL')

실습

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

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

if floatNum - int(floatNum) >= 0.5:
    print('{}: {}'.format('올림',floatNum+1))
else:
    print('{}: {}'.format('버림', int(floatNum)))

다자택일 조건문 (if~elif)

주의할 점:
조건식 순서가 중요하다.
조건 범위를 명시한다.

example_score = int(input('시험 성적 입력: '))
grades = ' '

if example_score >= 90:
grades = 'A'
elif example_score >= 80:
grades = 'B'
elif example_score >= 70:
grades = 'C'
elif example_score >= 60:
grades = 'D'
else:
grades = 'F'
print('성적: {} \t 학점: {}'.format(example_score, grades))

반복문

반복문 이란?
특정 실행을 반복한느 것. 반복문을 사용하면 프로그래밍이 간결하고 유지 보수가 쉽다.

for i in range(1,20):
print('{} * {} = {}'.format(5,i,(5*i))

횟수에 의한 반복

for i in range(10):
result = 7 * i
print('{} * {} = {}'.format(7,i,result))

range() 기본 사용 방법
range(시작, 끝, 단계)
ex) range(1,11,1) -> 1부터 10까지 1씩 증가
단계 매개변수 생략 -> 단계가 1인 경우 생략 가능, 시작이 0인 경우 생략 가능

조건에 의한 반복

n = 1
while n< 10:
result = 7 * n
print('{} * {} = {}'.format(7,n, (7*n)))
n += 1

실습

multi = int(input('희망 구구단 입력: '))

n = 1
while n < 10:
result = multi * n
print('{} * {} = {}'.format(multi, n, result))
n += 1

무한 반복 실형 논리형 데이터 사용 실습

**하루에 독감으로 병원에 내방하는 환자 수가 50명에서 100명 사이일 때, 누적 독감 환자 수가 최초 10,000명을 넘는 날짜를 구해보자.**
import random
flag = True
sum = 0
date = 0
while flag:
dayPatient = random.randint(50,100)
sum += dayPatient
date += 1
print('날짜: {}, \t 오늘 환자 수: {}, \t 누적 환자수: {}'.format(date, dayPatient, sum))

if sum >= 10000:
flag = False

반복문 제어

Continue 키워드

반복 실행 중 continue를 만나면 실행을 생략하고, 다음 반복 실행문으로 넘어간다.

for i in range(100):
if i % 7 != 0:
continue
print('{}는 7의 배수 입니다.'.format(i))

else 키워드

반복문이 종료된 후 실행된다.

cnt = 0
for i in range(1,100):
if i % 7 != 0:
continue

print('{}는 7의 배수 입니다.'.format(i))
cnt += 1
else:
print('99까지의 정수 중 7이 배수는 {}입니다.'.format(cnt))

break 키워드

반복 실행 중 break를 만나면 반복문을 빠져나온다.

sum = 0
searchNum = 0

for i in range(100):
sum += i

if sum > 100:
searchNum = i
break
print('searchNum = {}'.format(searchNum ))

실습

**새끼 강아지 체중이 2.2KG이 넘으면 이유식을 중단하려고 한다. 한번 이유식을 먹을 때 체주이 70g 증가한다고 할 때, 예상되는 이유식 날짜를 구하자. (현재 체중은 800g)**
limitedWeight = 2200
curentWeight = 800
date = 1

while True:
date += 1
curentWeight += 70

if curentWeight >= limitedWeight:
break
print('이유식 중단 날짜: {}'.format(date))

중첩 반복문

반복문안에 또 다른 반복문을 선언한다.

for i in range(1,10):
for j in range(i):
print('*', end='')
print()

실습

**구구단 전체 출력**
for i in range(1,10):
for j in range(2,10):
result = j * i
print('{} * {} = {}\t'.format(j,i,result),end= '')
print()
profile
최고의 데이터 분석가를 목표로 하는 박세우입니다.

0개의 댓글