[Python] 기초 6-2. 조건에 의한 반복문

HyunJin·2024년 5월 13일

✍ 조건에 의한 반복문

  • 조건에 만족하면 반복 실행, 그렇지 않으면 반복 중단
  • ex) 매일 아침 기상 알람, 게임 반복 실행, 타이머
  • 조건에 의한 반복은 while 문 주로 사용

1. while문

# n이 10 이하이면 반복 실행
endNum=10
n=0

while n <= endNum:
    print(n)
    n+=1
# 7단 구구단 출력

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

# 7 * 1 = 7
# 7 * 2 = 14
# 7 * 3 = 21
# 7 * 4 = 28
# 7 * 5 = 35
# 7 * 6 = 42
# 7 * 7 = 49
# 7 * 8 = 56
# 7 * 9 = 63

✔ 실습 1

  • 1부터 100까지의 정수 중 2의 배수와 3의 배수를 구분해서 출력

✔ 실습 2

  • while문을 이용해서 사용자가 입력한 구구단 출력

✔ 실습 3

  • 자동차 바퀴가 한번 구를 때마다 0.15mm씩 마모된다고 한다.
  • 현대의 바퀴 두께가 30mm
  • 최소 운행 가능 바퀴 두께가 20mm
  • 앞으로 구를 수 있는 횟수는?
currentThickness=30
rotationCount=0
## removeThickness= 0.15

while currentThickness >= 20:
    rotationCount += 1
    currentThickness-= removeThickness

safeRotationCount=rotationCount-1
print('운행 가능 횟수: {}' .format(safeRotationCount))

# 운행 가능 횟수: 66

2. 무한루프

  • 반복문을 빠져나올 수 없는 경우를 무한 루프라고 함
  • while문에서 조건식의 결과가 항상 True인 경우
# 무한루프
n=1
while n < 10:
    print('Hello')

# 9번만 실행하는 경우
n=1
while n < 10:
    print('Hello')
    n += 1

1) 논리형 데이터에서 무한루프

# 무한루프
flag= True
num=0
sum=0

while flag:
    num+=1
    sum += num
    print('{}까지의 합은 {}입니다'.format(num,sum))


# 위의 무한 루프를 중단하기 위해, while문에 if문 추가
flag= True
num=0
sum=0

while flag:
    num+=1
    sum += num
    print('{}까지의 합은 {}입니다'.format(num,sum))

    if sum>=1000:
        flag=False

✔ 실습

  • 하루에 독감으로 병원에 내방하는 환자수가 50명에서 100명 사이일 때, 누적 독감 환자 수가 최초 10,000명을 넘는 날짜를 구해보자


3. 반복문 제어

1) continue 키워드

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

2) else 키워드

  • else의 실행문은 반복문이 종료된 후 실행

✔ 실습

  • 1부터 100까지의 정수 중 3과 7의 공배수와 최소 공배수 출력

3) break 키워드

  • 반복 실행 중 break를 만나면 반복문을 빠져나옴
num=0

while True:
    print('Hello')
    num+=1
    if num>=5:
        break
print('The End')

# Hello
# Hello
# Hello
# Hello
# Hello
# The End

✔ 실습 1

  • 1부터 100까지 정수를 더할 때, 합계가 넘는 최최의 정수 찾기
sum=0
searchNum=0

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

    if sum >100:
        searchNum = i
        break

print('searchNum: {}' .format(searchNum))

# searchNum: 14

✔ 실습 2

  • 10의 팩터리얼 (10!)을 계산하는 과정에서 결과값이 50을 넘을 때의 숫자 구하기
result=1
num=0

for i in range(1,10):
    result *= i

    if result>50:
        num = i
        break

print('num: {}, result:{}' .format(num, result))

# num: 5, result:120

✔ 실습 3

  • 새끼 강아지 체중이 2.2kg가 넘으면 이유식 중단
  • 한번 이유식을 먹을 때 체중이 70g 증가
  • 현재 체중은 800g
  • 예상되는 이유식 날짜를 구하자
nowWeight=800
maxWeight=2200
addWeight=70

date=1

while True:
    if nowWeight >= maxWeight:
        break

    date+=1
    nowWeight += addWeight
print('이유식 중단날짜: {}' .format(date))

# 이유식 중단날짜: 21
profile
데이터 분석가 준비생

0개의 댓글