[Python] while문

참조


소개

  • 파이썬을 공부해야 할 일이 생겨서, 위키독스에 올라와 있는 점프 투 파이썬 내용을 보면서 파이썬 공부한 내용을 기록합니다.
  • 보다 자세한 내용은 점프 투 파이썬 해당 사이트에 가셔서 더 깊게 확인하실 수 있습니다.

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문 만들기

  • 이번에는 여러 가지 선택지 중 하나를 선택해서 입력받는 예제를 만들어 봅니다.
>>> 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()) 는 사용자의 숫자 입력을 받아들이는 것이라고만 알아 둡니다.

Enter number:
1

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

while문 강제로 빠져나가기

  • while문은 조건문이 참인 동안 계속해서 while문 안의 내용을 반복적으로 수행합니다.
  • 하지만 강제로 while문을 빠져나가고 싶을 때가 있습니다.
  • 이때 사용하는 구문이 break문 입니다.
  • 다음 예는 커피 자판기 이야기를 파이썬 프로그램으로 표현한 예입니다.
>>> coffee = 10
>>> money = 300
>>> while money:
...     print("돈을 받았으니 커피를 줍니다.")
...     coffee = coffee -1
...     print("남은 커피의 양은 %d개입니다." % coffee)
...     if coffee == 0:
...         print("커피가 다 떨어졌습니다. 판매를 중지합니다.")
...         break
...
  • money가 300으로 고정되어 있으므로 while money: 에서 조건문인 money는 0이 아니기 때문에 항상 참입니다.
  • 따라서 무한히 반복되는 무한 루프를 돌게 됩니다.
  • 그리고 while문의 내용을 한 번 수행할 때마다 coffee = coffee - 1 에 의해서 coffee의 개수가 1개씩 줄어듭니다.
  • 만약 coffee가 0이 되면 if coffee == 0: 문장에서 coffee == 0: 이 참이 되므로 if 문 다음 문장 "커피가 다 떨어졌습니다. 판매를 중지합니다." 가 수행되고 break 문이 호출되 while문을 빠져 나가게 됩니다.

while문의 맨 처음으로 돌아가기

  • while문 안의 문장을 수행할 떄 입력 조건을 검사해서 조건에 맞지 않으면 while문을 빠져 나갑니다.
  • 그런데 프로그래밍을 하다 보면 while문을 빠져나가지 않고 while문의 맨 처음으로 다시 돌아가게 만들고 싶은 경우가 생기게 됩니다.
  • 이때 사용하는 것이 바로 continue 문입니다.
>>> a = 0
>>> while a < 10:
...     a = a + 1
...     if a % 2 == 0: continue
...     print(a)
...
1
3
5
7
9
  • 위 예는 1부터 10까지의 숫자 중 홀수만 출력하는 예입니다.
  • a가 10보다 작은 동안 a는 1만큼씩 계속 증가합니다.
  • if a % 2 == 0 이 참이 되는 경우는 a가 짝수일 때 입니다.
  • 즉 a가 짝수이면 continue 문장을 수행합니다.
  • 이 continue문은 while문의 맨 처음으로 돌아가게 하는 명령어 입니다.
  • 따라서 위 예에서 a가 짝수이면 print(a) 는 수행되지 않을 것입니다.

무한 루프

  • while문을 이용하여 무한 루프를 나타낼 수 있습니다.
while True:
    수행할 문장1
    수행할 문장2
    ...
  • while 문의 조건문이 True이면 항상 참이 됩니다.
  • 따라서 while문 안에 있는 문장들은 무한하게 수행됩니다.
728x90

'파이썬(Python)' 카테고리의 다른 글

[Python] 함수(Function)  (0) 2022.02.05
[Python] for문  (0) 2022.02.05
[Python] if문  (2) 2022.01.31
[Python] 변수  (0) 2022.01.29
[Python] boo(불) 자료형  (0) 2022.01.29

이 글을 공유하기

댓글

Designed by JB FACTORY