인생은 여행 人生は旅

파이썬 - 반복문(while 1) 본문

코딩 공부

파이썬 - 반복문(while 1)

하늘빛 칵테일 2024. 3. 13. 11:28

2023 점프 투 파이썬

while 문의 기본 구조

다음은 while 문의 기본 구조이다.

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

while 문은 조건문이 참인 동안 while 문에 속한 문장들이 반복해서 수행된다.

‘열 번 찍어 안 넘어가는 나무 없다’라는 속담을 파이썬 프로그램으로 만들면 다음과 같다.

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

위 예에서 while 문의 조건문은 treeHit < 10이다. 즉, treeHit가 10보다 작은 동안 while 문에 포함된 문장들을 계속 수행한다. whlie문 안의 문장을 보면 가장 먼저 treeHit = treeHit + 1로 treeHit 값이 계속 1씩 증가한다는 것을 알 수 있다. 그리고 나무를 treeHit번만큼 찍었다는 것을 알리는 문장을 출력하고 treeHit가 10이 되면 "나무 넘어갑니다."라는 문장을 출력한다. 그러고 나면 treeHit < 10 조건문이 거짓이 되므로 while 문을 빠져나가게 된다.

treeHit = treeHit + 1은 프로그래밍을 할 때 매우 자주 사용하는 기법이다. treeHit 값을 1만큼씩 증가시킬 목적으로 사용하며 treeHit += 1처럼 작성해도 된다.

다음은 while 문이 반복되는 과정을 순서대로 정리한 표이다. 이렇게 긴 과정을 소스 코드 단 5줄로 만들 수 있다니 놀랍지 않은가?

treeHit조건문조건 판단수행하는 문장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 문 만들기

이번에는 여러 가지 선택지 중 하나를 선택해서 입력받는 예제를 만들어 보자. 먼저 다음과 같이 여러 줄짜리 문자열을 만들자.

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

이어서 number 변수에 0을 먼저 대입한다. 이렇게 변수를 먼저 설정해 놓지 않으면 다음에 나올 while 문의 조건문인 number != 4에서 변수가 존재하지 않는다는 오류가 발생한다.

>>> number = 0
>>> while number != 4:
...     print(prompt)
...     number = int(input())
...

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

Enter number:

while 문을 보면 number가 4가 아닌 동안 prompt를 출력하고 사용자로부터 번호를 입력받는다. 다음 결과 화면처럼 사용자가 값 4를 입력하지 않으면 계속해서 prompt를 출력한다.

여기에서 number = int(input())는 사용자의 숫자 입력을 받아들이는 것이라고만 알아 두자. int나 input 함수에 대한 내용은 뒤에 나오는 내장 함수 부분에서 자세하게 다룬다.

CopyEnter number:
1

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

4를 입력하면 조건문이 거짓이 되어 while 문을 빠져나가게 된다.

Enter number:
4
>>>

 

오늘은 시간이 없으니 여기까지만 보고 마무리 :)

'코딩 공부' 카테고리의 다른 글

파이썬 - 제어문(for문 1)  (2) 2024.03.15
파이썬 - 반복문(while 2)  (0) 2024.03.14
파이썬 - 조건문 if 2  (0) 2024.03.12
파이썬 - 조건문 if 1  (0) 2024.03.11
파이썬 - 변수  (0) 2024.03.08