20. 파이썬 반복문 while 에 대해 알아보자

  • 네이버 블로그 공유하기
  • 카카오톡 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기

지난 시간까지 파이썬의 조건문에 대해 공부했었습니다

파이썬 반복문 while

이번 포스팅에서는 파이썬 반복문 중 while 문에 대해 공부해 보도록 하겠습니다

while 문의 기본 구조

파이썬 프로그램을 짤 때 동일한 작업을 여러번 반복해서 수행을 해야 한다면 반복문을 사용하면 됩니다
반복문 중 먼저 while 문에 대해 알아보겠습니다.

아래는 while 문의 기본 구조입니다.

while 조건문:
    수행할 문장 1
    수행할 문장 2
    수행할 문장 3
    ...

while 문 에서는 조건문이 참인 동안에 수행할 문장 들을 반복해서 수행하게 됩니다.
다음은 ‘열 번 찍어 안 넘어 가는 나무 없다’ 라는 속담을 파이썬 프로그램으로 구현해 본 것입니다.

Python
>>> t = 0
>>> while t < 10:
...    t = t + 1
...    print("나무를 %d 번 찍었습니다." % t)
...    if t == 10:
...        print("나무가 넘어 갑니다")
...
나무를 1 번 찍었습니다.
나무를 2 번 찍었습니다.
나무를 3 번 찍었습니다.
나무를 4 번 찍었습니다.
나무를 5 번 찍었습니다.
나무를 6 번 찍었습니다.
나무를 7 번 찍었습니다.
나무를 8 번 찍었습니다.
나무를 9 번 찍었습니다.
나무를 10 번 찍었습니다.
나무가 넘어 갑니다

위 코드에서 while 문의 조건문은 t < 10 입니다. t 라는 변수의 값이 10 보다 작은 동안에 while 문안에 포함된 print 문과 if 문 을 반복해서 수행하게 됩니다.
먼저 t 가 10 보다 작은 것이 확인이 되면 t 값을 1씩 증가 시킵니다.
그리고 t 만큼 나무를 찍었다는 걸 출력해줍니다.
그렇게 t 값이 10 이 되면 나무가 넘어간다는 메세지를 출력하고
t 값이 10 이 넘어가게 되면 조건문이 거짓이 되므로 while 반복 문을 빠져 나가게 됩니다.

t = t + 1 이란 표현식은 자주 사용되는 기법인데 t += 1 이라고 표시 하기도 합니다.

실제 while 문이 반복되는 과정을 순서대로 정리하면 다음과 같습니다

t(변수) 조건문 조건판단 수행하는 문장 while 문
———————————————————————————————
0 0 < 10 참 나무를 1 번 찍었습니다. 반복
1 1 < 10 참 나무를 2 번 찍었습니다. 반복
2 2 < 10 참 나무를 3 번 찍었습니다. 반복
3 3 < 10 참 나무를 4 번 찍었습니다. 반복
4 4 < 10 참 나무를 5 번 찍었습니다. 반복
5 5 < 10 참 나무를 6 번 찍었습니다. 반복
6 6 < 10 참 나무를 7 번 찍었습니다. 반복
7 7 < 10 참 나무를 8 번 찍었습니다. 반복
8 8 < 10 참 나무를 9 번 찍었습니다. 반복
9 9 < 10 참 나무를 10 번 찍었습니다.나무가 넘어갑니다 반복
10 10 < 10 거짓 종료

위 같은 과정을 몇 줄의 while 문으로 만든겁니다.
만약 10 번이 아니라 100 번 또는 그 이상의 작업을 반복해야 한다고 하면 엄청난 효율이 나올 것입니다.

while 문 만들기

여러가지 선택지 중에서 하나를 선택해서 입력 받게끔 하는 예제를 만들어 보겠습니다.
먼저 여러 줄 짜리 prompt 를 만들어 보겠습니다.

Python
>>> prompt = """
... 1. Add
... 2. Del
... 3. List
... 4. Quit
...
... Enter number: """
>>> 

이제 n 이라는 변수에 0 을 먼저 대입해 줍니다. 이렇게 변수에 0 을 먼저 대입해 주는 방식으로 설정을 해놓지 않으면 다음에 나오는 while 문에서 조건문에 변수가 존재하지 않는다는 오류가 발생하게 됩니다.

Python
>>> n = 0
>>> while n != 4:
...     print(prompt)
...     n = int(input())
...
Python
1. Add
2. Del
3. List
4. Quit

Enter number :

위의 코드를 살펴보면 변수 n 이 4 가 아닌 동안 prompt 변수 안에 저장된 값들을 출력하고
사용자로부터 번호를 입력 받습니다.

Python
Enter number :
1

1. Add
2. Del
3. List
4. Quit

Enter number :
2

1. Add
2. Del
3. List
4. Quit

Enter number :
4
>>>

1 을 입력하면 4 가 아니기 때문에 prompt 변수 안의 값들을 출력하고
2 를 입력해도 역시 4 가 아니기 때문에 동일한 출력을 이어 주다가
4 를 입력하면 조건문이 거짓이 되어 while 문을 빠져나가게 됩니다.

다음 포스팅에서 while 문에 대해서 더 알아보도록 하겠습니다

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
20. 파이썬 반복문 while 에 대해 알아보자

Leave a Comment