본문 바로가기
코딩/파이썬

파이썬 [Python] - 반복문, for문, while문에 대한 모든것

by 누누즈 2023. 1. 13.
반응형

파이썬을 사용하시면서 반복문을 사용해야 할 때가 있습니다. 반복문을 언제 사용해야 할지, 반복문에 사용되는 for문과 while문에 대한 모든 것에 대해서 하나씩 알아보도록 하겠습니다. 이 두 가지만 아시면 반복문에 대한 모든 것을 아신다고 자부하셔도 됩니다.

 

 


[목차]

  1. 반복문이란?
  2. for문의 모든 것
  3. while문의 모든 것

 

1. 반복문이란?

반복문이란 어떤 특정행동들을 일정 규칙을 가지고 반복적으로 해야할 때 사용하는 문법입니다. 정말 같은 행동을 내가 정해준 수만큼 반복하게 할 수 있고, 특정 값이 일정한 규칙을 가지고 커지거나 작아지는 것을 이용해서 반복문을 사용할 수도 있습니다.

 

 

다음은 반복문을 사용하기 좋은 예시 들 입니다. 예를 들어 1부터 100까지 더하는 프로그램을 만들어야 한다고 가정해 보겠습니다. 그러한 경우 1을 시작값으로, 100을 종료값으로 하여 그 사이에 1씩 증가하며 값들을 계속 더해나가도록 식을 구현할 수 있습니다. 

 

 

식으로 표현하자면 1 + 2 + 3 + ... + 99 + 100과 같이 증가하도록 구현이 될 것입니다. 어떤 특정 값이 1부터 하나씩 늘어날 수 있도록 생각하는 것 그리고 그것이 반복문이 다라는 것만 인지하실 수 있으면 사용하시는 것은 매우 쉽다는 점 참고해 주세요.

 

 

반복문에 단골로 등장하는 구구단 만들기도 예로 들 수 있겠습니다. 2개의 반복문을 만들어 겉에서도 2~9까지 순차적으로 증가시키고, 안에 반복문에서도 2~9까지 순차적으로 증가시켜 두 반복문의 증가하는 값을 곱하여 결과를 보여주면 됩니다.

 

 

2. for문의 모든 것

어떤 언어를 사용하더라도 반복문을 써야 할 때 단골처럼 등장하는 for문입니다. 물론 일반적으로 다른 언어에서는 foreach문이나 for of문 등 다양한 사용 방식도 존재하지만 파이썬(Python)에서는 오직 for문만 제공하고 있다는 점 참고해 주시기 바랍니다.  반대로 말하면 for문만 사용할 줄 알면 되기에 쉽게 반복문을 읽고 쓰실 수 있습니다.

 

 

일반적인 for문

for [item] in [iterable]: 

    [반복할 구문]

으로 사용하시면 됩니다. iterable 안에는 주로 List나 String의 값을 많이 쓰시게 될 거고, 딕셔너리(Dictionary), set(집합), Tuple(튜플), 또한 자주 쓰입니다.

 

 

sum = 0
for i in [1,3,5,7]:
  sum += i
print(sum) # 16 출력 1+3+5+7 을 출력합니다.

for i in "abc":
  print(i)

# a
# b
# c가 순차적으로 출력 됩니다.

for i in {1,3,5}:
  print(i)
# 1
# 3
# 5가 순차적으로 출력 됩니다.

 

 

range를 이용한 for문 사용방법

range를 이용하면 index값을 어디서부터 어디까지 얼마의 Step으로 할지 정할 수 있습니다. range의 사용방법은 다음과 같습니다. ragne(시작숫자, 종료숫자, step)으로 하시면 됩니다. 위에 사용했던 [1, 3, 5, 7] 리스트를 range를 이용하여 표현할 수 있습니다. range(1, 8, 2)로 표현하면 시작 숫자는 1이고 step이 2이기에 다음 숫자는 3, 그다음 숫자는 5, 그다음 숫자는 7이 되어 [1, 3, 5, 7]과 동일한 효과를 냅니다. 종료숫자의 하나 전까지가 range인 점 참고해 주세요

 

 

시작 숫자를 생략할 수 있습니다. 생략하는 경우는 0부터 시작을 의미합니다. step 역시 생략 가능하며 생략 시에는 1을 의미합니다. 즉, range(5)와 같이 사용하신다면 [0, 1, 2, 3, 4]와 동일하다고 보시면 됩니다.

 

 

물론 사용하시다 보면 이미 List를 가지고 있는데 이것을 range로 굳이 바꿔서 len() 함수와 함께 구현을 하려고 하시는 분들도 있습니다. 이것은 파이썬에서는 권장하지 않는 패턴입니다.

 

 

sum = 0
for i in range(1,8,2):
  sum += i
print(sum) # 16 출력


#range 만 단독으로 사용 가능합니다.
print(list(range(1,5))) # [1, 2, 3, 4] 출력
print(list(range(1,10,3))) # [1, 4, 7] 출력

 

 

enumerate를 이용한 for문 사용방법

반복문(for문)을 사용하다 보면, 현재 몇 번째 반복인지 확인하고 싶을 때가 있습니다. 이때 사용하기 매우 좋은 방법으로 enumerate를 사용하는 방법이 존재합니다.

 

 

a = [10, 12, 15, 3, 4, 13]
for i in enumerate(a):
  print(i)

# (0, 10)
# (1, 12)
# (2, 15)
# (3, 3)
# (4, 4)
# (5, 13) 출력, 앞에 값은 index입니다.
  

# 튜플 형태로 출력 가능 합니다. i는 index이며 0부터 순차적으로 증가합니다.
for i, j in enumerate(a):
  print("{} : {}".format(i, j))

# 0 : 10
# 1 : 12
# 2 : 15
# 3 : 3
# 4 : 4
# 5 : 13 출력

 

 

3. while문의 모든 것

반복문의 방법 중 for문을 많이 사용하기도 하지만 for문보다 조금 더 자유롭게 반복문을 표현하고자 할 때가 존재합니다. 이럴 때는 주로  while문을 이용하여 구현을 하곤 합니다.

 

 

일반적인 while문

일반적인 while문은 아래와 같은 식으로 구성되어 있습니다.

 

while [조건문] : 

    [반복할 구문]

 

[조건문] 이 참인동 안 while 내부 [반복할 구문]을 수행 합니다. [조건문]이 참인동안 계속 [반복할 구문]을 실행하기에 while이 종료할 조건을 반드시 추가해줘야 합니다. for문에서는 종료하는 경우가 항상 있었지만 while의 경우는 아예 없다는 점을 참고해 주세요.

 

 

i = 0

while i < 5:
  print(i)
  i += 1

# 0
# 1
# 2
# 3
# 4 출력

 

 

break, continue를 이용한 조건 추가

break는 어떤 특정 조건이 되면 while을 빠져나갈 수 있게 해주는 말 그대로 break역할을 하게 됩니다. continue는 어떤 특정 조건일 때는 현재 이후 부분을 진행하지 않고 다시 while처음으로 돌려보내 줍니다.

 

 

sum = 0
i = 0

while True:
  i = i + 1
  if i > 5:
    break
  sum += i

print(sum) # 15 출력, 1+2+3+4+5의 값을 출력 한다.

sum = 0
i = 0

while True:
  i = i + 1
  if i % 2 == 0:
    continue
  if i > 5:
    break
  sum += i
  
print(sum) # 9 출력, 1+3+5 의 값을 출력한다. 2와 4인경우는 continue에 의해 더하지 않는다.

 

 

 


[함께 읽으면 좋은 글]

이전글 :  2023.01.12 - [코딩/파이썬] - 파이썬 [Python] - set, 함수, 추가(add), 삭제(remove, discard), 집합

 

파이썬 [Python] - set, 함수, 추가(add), 삭제(remove, discard), 집합

파이썬(Python)에서 자주 사용되는 set 함수에 대해 알아보겠습니다. 아래는 set 함수에 대한 정의, 선언하는 방법, 추가(add), 삭제(remove, discard), 집합(교집합, 합집합, 차집합, 대칭차집합), 기타 함

nxuafxdgg.tistory.com

 

 

 


 

 

 

반응형

댓글