[Python] while 반복문 쓰기

반응형
    반응형

    코딩을 한다고 하면 반복문을 하지 않고는 할 수 없을 정도로 중요합니다. 사실, 반복문(loop)을 쓰는 이유는 자동화를 위해서라고 해도 과언이 아닙니다. 우리가 해도 되는 것이지만 시간적인 문제와 끊임없는 반복 노동을 하지 않을 수 있다면 그것만큼 좋은 게 없습니다. 우리의 체력을 아끼고 시간을 아끼면서 일을 이루려면 컴퓨터가 알아서 계산해서 알아서 하는 게 제일 좋습니다. 

    파이썬에서는 while 과 for 문으로 반복문을 생성합니다. 두 가지만 알면 모든 반복문을 다 쓸 수 있습니다. while 은 특정 조건을 만족하는 경우 수행하고 for는 우리가 정한 범위 내에서 순회하면서 하나씩 수행하는 방식입니다. 주의할 점은 while을 쓴다면 범위가 없으므로 반복을 멈추게 하는 장치가 필요합니다. 그렇지 않으면 무한 수행을 해서 강제로 종료를 시켜야 합니다. 이를 무한 루프(loop)라고 합니다. 무한 루프가 되지 않게 while 구문을 작성하는 게 중요합니다.


    While

    while 에 대해 알아보겠습니다.

    while 도 if와 동일하게 조건을 붙이고 :(콜론)으로 마무리합니다. 그래서 while 뒤의 조건이 참일 때에는 반복 수행을 하고 False 일 때는 수행을 멈추고 이후 코드 진행을 합니다.

    a = [1,2,3,4,5,6]
    i =0
    while i <len(a):
        if a[i]>4:
            print(a[i])
        i += 1
        

    위의 예를 보면  while 구문에 i 가 len(a) 보다 작은 경우에만 실행한다는 조건을 붙였습니다. 그리고 그렇다면 a[i]>4 보다 큰 경우, 그 숫자를 출력해주라는 요청을 했습니다. 그러면 컴퓨터는 i에 0~5(len(a)=6이므로)까지의 숫자를 하나씩 대입해서 if 구문이 참이 된다면 숫자를 출력할 것입니다. 

    파이썬에서는 초기값이 정해져 있지 않는다면 수행이 안 됩니다. 그래서 초기값 i=0 으로 시작하였고 while 마지막에 i를 하나씩 늘려서 코딩을 작성해야 무한 루프에 빠지지 않습니다. 만약 i+=1 이 없으면 while의 i에는 0이 대입되고 무한루프를 형성되므로 주의해주시기 바랍니다. 혹시 무한루프에 걸리면 jupyter는 멈추는 아이콘이 있으니 멈추면 되고 idle을 쓰시면 Ctrl+C로 강제 종료를 할 수 있습니다.


    break

    무한 루프를 탈출하기 위해서 break 를 쓰는 방법이 있습니다. break는 if 같은 조건문 안에서 수행이 되니 조건을 걸어서 루프를 탈출하는 장치를 마련할 수 있습니다. break를 걸어놓음으로써 해당 코드 수행은 멈추고 다음 코드를 진행합니다.

    a = [1,3,9,21,23,25]
    i =0
    while i <len(a):
        if a[i]>20:
            break
        print(a[i])
        i +=1

    리스트 a 에 있는 숫자 중에 조건에 맞는 숫자를 출력해보겠습니다. while 은 i <len(a)가 참일 때까지 반복을 할 것이고, if를 써서 리스트에서 선택된 숫자가 20 보다 크면 출력하지 말고 멈추라고 했습니다. 즉, '20보다 작은 숫자만 출력해줘'라고 요청을 한셈입니다. 조건에 맞춰서 1,3,9 만 출력을 한 것을 볼 수 있습니다. 

     


    continue

    continue 도 역시 if 와 같은 조건문 안에 쓰는 경우가 많습니다. 왜냐하면 조건을 만족하면 건너뛰기 위해 쓰는 것이기 때문이죠. continue는 정확하게 의미를 아는 게 중요합니다. 나중에 되면 continue를 써야 하는 건지 안 해야 하는 건지 헷갈릴 때가 많습니다. break는 멈추게 했지만 continue는 '조건이 참이라면 이건 건너뛰고 다시 while로 돌아가서 반복을 수행해줘'라는 요청을 할 때 씁니다. 이걸 헷갈려서 '계속 간다'라고 여기고 쓰시는 분이 많이 계시는데 그게 절대 아니라는 것을 기억해주시기  바랍니다. 

    a = 10
    while a>0:
        a -=1
        if a==3 or a==7:
            continue 
        print(a)

     

    10 에서 계속해서 하나씩 빼고 출력을 할 건데 3과 7을 빼고 출력을 해달라고 요청하려고 합니다. 3과 7을 건너뛰어야 하므로 if 조건을 넣어서 continue를 설정해 건너뛰도록 했습니다. 보시는 바와 같이 3,7은 빠지고 숫자가 출력되는 것을 볼 수 있습니다.

     


    이상으로 while 에 대해서 간단히 알아보았습니다. 

    'Python > 기초' 카테고리의 다른 글

    [Python] 함수  (0) 2020.04.07
    [Python] for 반복문  (0) 2020.04.03
    [Python] 조건문(if, elif, else)  (0) 2020.03.30
    [Python] 딕셔너리(dictionary)  (0) 2020.03.28
    [Python] 리스트 다루기(생성,추가,인덱싱)  (0) 2020.03.25

    댓글

    Designed by JB FACTORY

    ....