언어/파이썬

파이썬 어디까지 파봐썬 7강_While반복문

디지털랫드 2024. 2. 18. 18:13

1.while 반복문

1) while문 기본 구조


반복문은 유사한 명령을 계속 수행하는 제어문입니다.
예를 들어서 1~10까지 출력하고 싶다면

print(1)
print(2)
print(3)
.
.
.
print(9)
print(10)

이처럼 같은 문장을 10번 입력해야 합니다.
반복문은 이런 번거러움을 간단한 코드로 실현시켜줍니다.

기본 구조는 아래와 같습니다.

while 조건:
    수행할 문장

if문과 굉장히 유사하게 생겼네요!
if 키워드 대신에 while을 쓰면 됩니다.

1~10까지 출력하는 코드를 while문으로 작성해보겠습니다.

 
 
실행 완료
1
2
3
4
5
6
7
8
9
10

위 코드의 알고리즘을 보면서 번역해 봅시다.
while 은 '~동안'이라고 번역하면 됩니다.

num = 1           # num은 1
while num <= 10:  # num이 10보다 작거나 같을 '동안'
    print(num)    # num을 출력해라
    num += 1      # num에 num+1 을 할당 → 루프를 타고 올라가서 while 조건 충족 여부 재확인

2) while문 만들고 번역하기


  • 등차 수열의 합 while 문을 활용해서 1부터 10까지 더하는 코드를 작성해보겠습니다.
    천천히 읽으면서 번역해봅시다.
 
 
실행 완료
55

num, sum의 변수에 먼저 숫자를 할당해줬습니다.
그렇지 않으면 다음에 나오는 while문에서 변수가 존재하지 않는다는 오류가 뜹니다.

위 코드를 번역해 보면 다음과 같습니다.

num = 1           # num에 1을 할당
sum = 0           # sum에 0을 할당
while num <= 10:  # num이 10보자 작을 동안
    sum += num    # sum은 기존 sum과 num을 더한 것이 되고,
    num += 1      # num은 기존 num에 1은 더한 것이 된다.
print(sum)        # while문 끝나면 sum 값을 출력

3) while문 강제로 빠져나가기


반복문은 조건을 만족하는 동안 반복문 안의 내용을 계속 실행합니다.
하지만 중간에 반복을 중지하거나 현재 반복을 건너뛰어야 할 경우에 break를 사용합니다.
예를 들어, 꽈배기 10개를 준비한 상황에서 11번째 주문이 들어온다면 품절이라고 출력되어야 합니다.

 
 
실행 완료
꽈배기  10 개 있습니다.
주문 개수 :  5
남은 꽈배기는  5 개 입니다.
*************************
꽈배기  5 개 있습니다.
주문 개수 :  8
남은 꽈배기는  -3 개 입니다.
*************************
꽈배기 품절입니다.

4) while문과 continue


break 명령은 루프를 탈출하는 데 비해 continue 명령은 이번 루프만 건너뛰고 나머지는 계속 수행 합니다.
간단한 코드로 break와 continue를 비교해 보겠습니다.

 
 
실행 완료
1
 
 
실행 완료
1
3
5
7
9

각 코드를 번역해보자.

# break
a = 0              # a는 0
while a < 10:      # a가 10보다 작을 동안
    a += 1         # a에 a+1의 값을 할당하고
    if a % 2 ==0:  # 만약 a를 2로 나눈 나머지가 0과 동일하면
        break      # 루프를 깨버리고 나온다.
    print(a)       # (if문 블럭 밖이므로) a를 출력한다.
# continue
a = 0              # a는 0
while a < 10:      # a가 10보다 작을 동안
    a += 1         # a에 a+1의 값을 할당하고
    if a % 2 ==0:  # 만약 a를 2로 나눈 나머지가 0과 동일하면
        continue   # 넘어가고 루프 선두로 돌아가서 계속 루프를 탄다.
    print(a)       # (if문 블럭 밖이므로) a를 출력한다.

break는 루프를 빠져 나오는 것이고, continue는 하나만 건너 뛰고 선두로 돌아 루프를 계속 실행합니다.

5) 무한 루프


무한 루프는 반복 횟수를 정하지 않고 무한히 반복하는 루프를 뜻합니다.
while문으로 작성하고 뒤에 배울 for문으로는 무한 루프를 만들 수 없습니다.

무한 루프의 예시를 함께 보겠습니다. 이름에 걸맞게 무한히 코드가 작동됩니다.
코드를 짤 때 의도치 않게 무한 루프에 갇히기도 하니😅, 기억해둬야 합니다.

※TIP
1. LMS에서 무한 루프 중지하는 법
-코드 블럭 왼쪽 위에 ■을 눌러 코드 실행 중지를 눌러 주세요.

2. Jupyter Notebook으로 학습을 진행시 무한 루프 중지하는 법
-쏟아지는 출력에 당황하지 말고 ctrl+c을 누르면 됩니다.


아래의 코드 실행 버튼을 눌러 실습을 진행해 보세요!

 
 
실행 완료