본문 바로가기
방구석코딩/파이썬 기초문법

[파이썬 데이터 분석] 반복문 - While문

by 석세상 2022. 6. 1.
반응형

if문은 조건에 맞춰 실행하는 문법이었다면 while문은 같은 작업을 반복해야 하는 경우 사용하는 언어이다. 반복문으로 사용되는 while문과 for문이 있는데 유사하게 실행되기 때문에 특별한 경우가 아니라면 본인이 선호하는 문법을 쓰면 된다.

 

 

1. 반복문 사용 시 장점

반복문은 우리가 코딩을 사용하는 가장 중요한 부분 중에 하나이다. 어차피 내가 반복 작업을 하나하나 작업할 거라면, 또 반복하는 횟수가 몇 번 되지 않고, 동일한 작업이 아니라 매번 다른 작업을 해야 한다면 프로그램을 사용해야 하는 이유가 현저하게 줄어들 것이다. 그럼 어떤 경우 반복문을 사용하는 게 좋을까?

  • 같은 작업을 수백 번, 수천번과 같이 여러 번 작업해야 하는 경우
  • 사람이 같은 작업을 반복하면 실수할 수 있기 때문에 프로그램을 통해 정해진 규칙적으로 하면 실수가 줄어듦
  • 프로그램이 알아서 여러 번 동일 작업을 수행하기 때문에 수행 시간이 줄어들거나 시간에 구애받지 않고 실행

 

2. While문 활용법

while문은 if문과 문법적으로는 비슷한 부분이 많다. while 옆에 조건문을 사용하고, 아래 줄에 들여 쓰기 통해 해당 조건 내의 문장을 반복 수행한다.

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

 

whlie문 활용 예제

만약 시험문제를 푸는데 매 문제마다 '1번 문제 푸세요', '2번 문제 푸세요',...., '10번 문제 푸세요'라고 안내를 하고 10번까지 다 풀었다면 '시험이 끝났습니다'라는 안내를 해야 된다고 해보자. 그렇다면 10번을 반복해야 하기 때문에 while문을 활용하여 해결할 수 있을 것이다.

[입력값]
test = 0                                                 # 초기값 세팅

while test < 10 :                                    # 10보다 작을 때까지 실행하라는 조건문 사용
    test = test + 1                                   # test가 맨처음 시작할 때 0이였지만 1씩 증가해야 하기 때문에 +1씩 더해줌
    print("{0}번 문제를 푸세요".format(test))
    if test == 10 :
        print("문제를 다 풀었습니다")


[출력결과]
1번 문제를 푸세요
2번 문제를 푸세요
3번 문제를 푸세요
4번 문제를 푸세요
5번 문제를 푸세요
6번 문제를 푸세요
7번 문제를 푸세요
8번 문제를 푸세요
9번 문제를 푸세요
10번 문제를 푸세요
문제를 다 풀었습니다

자, 이제 위의 결과가 어떻게 나왔는지 하나씩 풀어보도록 하자. 우선은 위에서 사용한 명령어를 보자면 while문뿐만 아니라 if문, 문자열 포매팅 등 이전에 배웠던 것들을 같이 사용해서 문제를 해결했다. 따라서 단편적으로 알고 있던 것들이 이렇게 결합해서 문제를 해결할 수 있기 때문에 기존에 배웠던 것들도 잘 숙지하고 있어야 한다.

[파이썬 데이터 분석] 제어문 - IF문 (if, else, elif), in (tistory.com)

[파이썬 기초] 문자열 포맷 (tistory.com)

 

 

참고로 입력값 옆에 # 을 사용해 쓴 부분은 실행에 영향을 주지 않는 주석이다. 컴퓨터가 이해하는 언어로 사용했기 때문에 내가 어떤 의미로 썼는지 등을 나중에 알아보거나 다른 사람이 알아볼 수 있는 게 쓴 부분이라고 생각하면 된다. 프로그램 코딩 시 많이 사용하는 부분이니 알아두자.

 

 

결과 풀이

  1. 맨 처음에 test = 0이라는 초기값을 주었다. 아직 문제를 풀지 않았기 때문에 0부터 시작하자.
  2. 그다음으로는 while test < 10 :이라는 것을 보자면 test의 값이 10보다 작을 때까지 아래 문장을 반복하라는 의미이다. 그럼 지금은 test를 0으로 초기값을 주었기 때문에 0이 들어 있어서 조건에 만족해서 아래 문장을 실행한다.
  3. test = test + 1 만나서 test에 1을 더해준다. 그러면 이제 test 값은 1로 변한다.
  4. print문을 만나서 format에 있는 {0} 번째 변수인 test의 값을 넣어준다. 지금 test의 값은 1로 변했기 때문에 '1번 문제를 푸세요'라는 결과가 출력된다. format이 기억나지 않는다면 위에 링크를 걸어둔 문자열 포맷을 확인하자.
  5. 다음으로는 if test == 10 :이라는 문장을 만나는데 test의 값은 1이기 때문에 아래 문장을 실행하지 않는다.

 

위의 순서대로 한 바퀴를 돌면 '1번 문제를 푸세요'라는 결과를 출력하게 되고 다시 while test < 10 : 부분으로 올라가게 된다. 그러면 test의 값은 1이기 때문에 다시 아래 문장을 수행해 test = test + 1이 되어 test는 2로 변하게 되고 계속 조건에 맞는 한 반복하게 된다.

 

test값이 9일 때까지 while이 있는 데까지 올라가게 되는데, 아직 조건이 만족하니 바로 아래에서 test에 또 1을 더해주어서 10이 된다. 그럼 '10번 문제를 푸세요'가 출력되고, if문의 조건문인 test == 10을 만족하기 때문에 if문의 print문인 '문제를 다 풀었습니다' 부분도 출력한다. 

 

마지막으로 test가 10이 되어 while 부분으로 올라가면 test의 값이 10이므로 10보다 작다는 조건에 만족하지 않기 때문에 while문의 반복은 종료된다.

 

 

위의 내용을 차근차근 읽어보면 반복문이 어떤 프로세스를 통해 실행되는지에 대해서 이해할 수 있을 것이다. 이와 같이 반복문 중 while문의 예제를 통해 작동원리에 대해 알아봤는데, 나 같은 경우는 while문보다는 for문을 더 선호하기 때문에 for문에 대해서 공부할 때 좀 더 자세한 기능들에 대해서 알아보자.

 

 

 

 

 

 

 

 

728x90
반응형

댓글