[Python] Loop - for / while

2 minute read

python-version-3.7.1

Loop (반복문)

  • for

  • while


1. for

for i in range(3):
    print(i)

>>> 0
>>> 1
>>> 2


range(3) 이 들어간 자리에는 iterable 객체라면 무엇이든 들어갈 수 있다.
iterable 객체의 대표적인 예시 : list, tuple, dictionary, set, string …
예시로 string 을 통해 for 반복문을 만들어보겠다.

for i in "Python":
    print(i)

>>> P
>>> y
>>> t
>>> h
>>> o
>>> n

dictionary 의 경우에는 Key 에 해당하는 값들이 반복문의 변수에 삽입된다.



About range()

range 함수는 for 반복문만을 위해 있는 함수가 아니다.
range(n) 의 의미는 0부터 n-1 까지의 수를 요소로 가지는 iterable 객체를 만든다.
range(3, 7) 은 3부터 6까지의 수를 요소로 가지는 iterable 객체를 만든다.

range(3,10)

>>> range(3, 10)

list(range(3,10))

>>> [3, 4, 5, 6, 7, 8, 9]



for + else

for 반복문에서 in 뒤에 붙는 iterable 객체의 순환이 끝나면
for 뒤에 이어지는 else 구문이 실행된다.
하지만 iterable 객체의 순환이 끝나서가 아니라
break 를 활용하여 반복문을 나가게 될 경우에는 for문과 연결된 else 구문도 탈출하게 된다.

for i in range(1, 5+1):
    print(i)
    
else:
    print("else!")

print("Out!")

>>> 1
>>> 2
>>> 3
>>> 4
>>> 5
>>> else!
>>> Out!


위의 예시코드는 for문의 iterable range객체의 순환이 끝난 뒤, else구문이 실행되고,
반복문 밖에 해당되는 print("Out!") 구문이 출력되었다.


이번엔 break 를 활용하여 위의 반복문을 탈출해보겠다.

for i in range(1, 5+1):
    if i == 2:
        break
    print(i)
    
else:
    print("else!")
    
print("Out!")

>>> 1
>>> Out!


i 가 2 일 때 break 를 통해 반복문을 탈출하였기 때문에 else 구문도 탈출하게되어
곧바로 반복문 밖 명령어 print("Out!") 가 출력되었음을 알 수 있다.



2. while

while condition:
    print("Loop!")

while 옆의 condition 이라는 변수가 True 일 경우 무한한 반복을 한다. 그렇다면 while 의 반복을 끊는 방법은 없을까?

방법은 크게 두가지이다.

  • 1st. break 를 사용한다.
n = 0
condition = True

while condition:
    print("Loop!")
    n += 1
    if n == 3:
        break

>>> Loop!
>>> Loop!
>>> Loop!

conditionTrue 로 정의하여 무한한 반복을 시켰지만,
반복문 밖에서n 을 0으로 정의, 반복이 될 때마다 n 에 1을 더해주고,
3이 될 경우 break명령어를 실행하도록 하여 반복을 중단시켰다.

만약 n을 반복문 내에 정의할 경우 반복이 될 때마다 n = 0이 실행되어 n += 1 코드가 무의미해지고, 결과적으로 무한반복을 하게된다.



  • 2nd. condition이 특정조건에서 False가 되게한다.
condition = 3

while condition > 0:
    print("Loop!")
    condition -= 1

>>> Loop!
>>> Loop!
>>> Loop!

위 코드에서는 condition 변수를 3으로 정의한 뒤, 0보다 클 경우 반복을 하도록 반복문을 정의하였다.
반복문내에서 한번 코드를 실행할 때마다 condition 변수를 1씩 줄이게 되고,
condition 이 0이 되는 순간 반복 조건은 False 가 되어 반복을 멈추게 되는 방식이다.



while + else

for + else 와 크게 다르지 않다.
마찬가지로 break 를 통해 반복문을 탈출하게 되면 else 구문도 함께 탈출한다.
하지만 while 조건문이 False 가 되도록 하여 반복문을 탈출하게되면 else 구문은 실행된다.

Leave a comment