파이썬을 사용하시면서 반복문을 사용해야 할 때가 있습니다. 반복문을 언제 사용해야 할지, 반복문에 사용되는 for문과 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
'코딩 > 파이썬' 카테고리의 다른 글
파이썬 [Python] - 함수, Function의 모든 것 (1) | 2023.01.16 |
---|---|
파이썬 [Python] - 조건문, if, elif, else (0) | 2023.01.15 |
파이썬 [Python] - set, 함수, 추가(add), 삭제(remove, discard), 집합 (0) | 2023.01.12 |
파이썬 [Python] - 딕셔너리(Dictionary)의 get 사용법 (0) | 2023.01.11 |
파이썬 [Python] - 딕셔너리, Dictionary, 사용법, 복사, 수정, for문, in, 삭제, pprint (0) | 2023.01.10 |
댓글