본문 바로가기
프로그래밍 언어/Python

[Python] 파이썬의 반복문

by Kallunar 2023. 11. 2.

파이썬에서의 loop, 즉 반복문은
어떻게 생겼나 살펴보자

1. 반복문의 기본, 'for loop'

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

# === 결과 ===
# 0
# 1
# 2
# 3
# 4

 

기본적으로 위와 같은 형태로 사용한다.
range() 안에 반복할 횟수를 지정하며,
콜론과 들여쓰기(indentation)를 사용하여
선언부와 구현부를 구분한다.

이때 시작은 기본적으로 0이기 때문에
자연스럽게 마지막 숫자 5는 포함되지 않는다.
또한 증가폭은 기본적으로 1이다.

시작점, 증가폭 역시 지정해주고 싶다면
다음과 같이 사용한다.

for i in range(1, 10, 2):
  print(i)
  
# === 결과 ===
# 1
# 3
# 5
# 7
# 9

for i in range(10, 0, -2):
  print(i)
  
# === 결과 ===
# 10
# 8
# 6
# 4
# 2

 

주어진 범위의 수를 받아와 사용하기 위해
임의의 변수(여기서는 i)를 지정했으나,

주어진 범위의 수를 사용할 필요가 없고
그냥 말 그대로 구현부를 반복만 하는 것이 목적이라면,

굳이 i와 같이 명확하게 변수를 지정할 필요 없이
아래처럼 dummy variable을 사용할 수도 있다.

for _ in range(3):
  print("그냥 반복")
  
# === 결과 ===
# 그냥 반복
# 그냥 반복
# 그냥 반복

 

iterable 객체를 대상으로 반복문을 사용한다면
아래와 같이 range() 를 사용하지 않고도 반복이 가능하다.

str = "string"
for s in str:
  print(s)
  
 # === 결과 ===
 # s
 # t
 # r
 # i
 # n
 # g
 
 sample = ['b', 'a', 'g']
 for char in sample:
   print(char)
 
 # === 결과 ===
 # b
 # a
 # g

 

2. 또 다른 루프, 'while' 문

기본적으로 모든 for loop는 while 문으로 바꿀수 있다.
while 키워드와 콜론 사이에 반복을 위한 조건을 입력하고,
마찬가지로 콜론 다음 줄바꿈과 들여쓰기를 이용하여 구현부를 구분한다.

예시는 아래와 같다.

# for i in range(5):
#   print(i)

i = 0
while i < 5:
  print(i)
  i += 1
  
# === 결과 ===
# 0
# 1
# 2
# 3
# 4

# for _ in range(3):
#   print("그냥 반복")

i = 3
while i != 0:
  print("그냥 반복")
  i -= 1

# === 결과 ===
# 그냥 반복
# 그냥 반복
# 그냥 반복

 

for loop와의 가장 큰 차이점은
while 반복문의 경우 무한 반복이 가능하다는 점이다.

반복 조건에 True, 혹은 1을 입력하면
별다른 정지 조건이 없는 한 계속해서 구현부를 반복한다.

while True:
  print("무한 반복")
  
# 또는

while 1:
  print("무한 반복")
  
# === 결과 ===
# 무한 반복
# 무한 반복
# ...

 

어떤 상황에서 무한 루프를 사용할까?

가령 선언부에서 반복 조건으로 종료점을 설정하기 어려울 때,
우선 무한 반복을 돌려놓고
구현부에서 별도로 종료 조건을 체크하여
조건을 충족하면 정지시키는 방식으로 사용한다.

정지를 시킬때는 'break' 라는 키워드를 이용한다.

특정 입력을 종료 조건으로 사용하는 다음과 같은 예를 살펴보자

# 0 ~ 9까지의 숫자 중 하나를 입력받고,
# 입력받은 숫자가 0일 때만 종료하고 싶을 때

while True:
  value = int(input("숫자 입력(0 ~ 9): "))
  print("입력받은 값", value)
  
  if value == 0:
    break
    
 # 0을 입력받으면 while문을 탈출하여 종료된다.

 

댓글