관리 메뉴

정리왕

파이썬 while 문 1 본문

6.개발/파이썬 공부하기

파이썬 while 문 1

정리합니다 2020. 11. 29. 15:11
반응형

파이썬 while 문 기본 구조

 

반복해서 문장을 수행해야 할 경우 while문을 사용한다.

그래서 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문안의 문장을 계속 수행한다. while문 안의 문장을 보면 제일 먼저 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를 출력한다.

 

Enter number: 
1

1. add
2. del
3. list
4. quit

Enter number: 

4를 입력하지 않으면 계속해서 prompt를 출력한다.

 

 

 

Enter number: 
4
>>> 

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

반응형
Comments