목차(Content)
> 파이썬 for문
> for문 기초 문법
> for문과 range() 함수
> for문과 while문의 차이
> for vs while 연습 문제
> for문과 continue
> for문과 break
> 다중 for문
파이썬 반복문: for문에 대하여
파이썬 for문
파이썬에서 반복문의 다른 종류로 for 문이 있습니다. for 문은 파이썬에서는 정말, 정말 많이 사용됩니다. 그 이유는 크게 두 가지가 있습니다.
첫째, for 문의 경우에는 while 문과는 다르게 ‘반복 횟수가 정해져’ 있습니다. 그래서 무한 루프에 빠질 가능성이 상대적으로 낮습니다.
둘째, 리스트, 튜플, 딕셔너리와 같은 순회할 수 있는 객체(iterable 객체)와 함께 사용하여 그들의 원소(element)에 개별적으로 접근할 수 있습니다.
참고로 for문의 반복 횟수가 정해진 이유도 iterable 객체의 원소를 하나씩 꺼내서 반복문을 실행하기 때문입니다. for 문은 함께 사용한 iterable 객체의 개수만큼만 반복됩니다. (과일 바구니에서 과일을 하나씩 꺼내는 것을 상상해 보세요.)
for문 기초 문법
예시로 사용법을 익혀 보겠습니다. 변수 ‘i’에 [1,2,3,4,5] 리스트의 원소가 하나씩 할당됩니다. 그래서 변수 i를 출력하면 1부터 5까지의 값이 순차적으로 출력됩니다. 물론 문자열도 받을 수 있습니다.
# 리스트와 for 문
for i in [1,2,3,4,5]:
print(i)
>>>>> 실행 결과
1
2
..
5
문자열도 ‘문자의 배열’이기 때문에 for 문과 함께 사용할 수 있습니다. 이 경우 개별 문자를 하나씩 뽑아오게 됩니다.
# 리스트와 문자열
for i in "가나다라마바":
print(i)
>>>>> 실행 결과
가
나
..
바
for문과 range() 함수
for 문은 iterable 객체의 원소를 뽑아서 변수에 대입하지만, 변수의 값을 굳이 활용하지 않아도 됩니다.
대표적인 예시로, 단순히 특정 횟수만 반복하고 싶은 경우가 있을 텐데요. 이런 경우에는 range() 함수를 for 문과 함께 사용하면 편리합니다.
# for 문과 range() 함수: 10번만 반복
# while 문과 다르게, 종료 조건을 일일이 고려하지 않아도 된다.
for i in range(10):
print("10번만 반복")
>>>>> 실행 결과
10번만 반복
10번만 반복
...
10번만 반복
for문 vs while문
for문과 while문의 차이
for 문과 while 문에 대해 배우면서, 두 반복문은 언제 사용해야 하는지에 대한 고민을 하실 텐데요. 두 반복문은 특징이 명확한 만큼 사용이 권장되는 환경이 있습니다.
for문과 while문 사용 시, 선택 가이드
첫째, 몇 번을 반복할지 정확히 모르는 경우에는 while 문을 사용한다.
둘째, 반복 횟수에 대해 정확히 아는 경우에는 for 문을 사용한다.
셋째, iterable 객체의 원소를 활용해야 하는 경우에는 for 문을 사용한다.
for vs while 연습 문제
위 내용은 어디까지나 가이드 사항입니다. 본인에게 맞는 방법을 사용하시면 됩니다. 아래 반복문에 대한 예제를 살펴보면서 연습을 해보세요.
연습문제 #1
# 문제1: 사용자가 "stop"을 입력하기 전까지 값을 입력 받고 출력하기
# 반복 횟수를 모르기 때문에 while 문을 사용
user_input = input()
while True:
if user_input == "stop":
break
print(user_input)
user_input = input()
연습문제 #2
# 문제2: 5번 값을 입력 받고, 입력 받은 값의 합을 출력
# 횟수가 정해져 있으므로, for 문 사용
total = 0
user_input = 0
for i in range(5):
user_input = int(input())
total += user_input
print(total)
연습문제 #3
# 문제3: 반복문을 사용하여 "_".join(list("abcde")) 와 같은 정답을 출력하기
total = ''
for alphabet in list('abcde'):
if alphabet == 'e':
total += alphabet
else:
total += alphabet + '_'
print("_".join(list("abcde")))
print(total)
반복문 제어와 다중 for문
for문과 continue
while 문 수업에서 반복문을 제어하는 방법으로 continue와 break문이 있다고 말씀드렸습니다. for문도 반복문이기 때문에 continue와 break로 제어할 수 있습니다.
continue는 특정 조건을 만족하면, continue 아래의 코드는 실행하지 않고 다음 반복 루프로 이동합니다. (스킵의 개념)
# for와 continue
# 2의 배수이면 현재 루프를 스킵하고 다음 루프로 이동
for i in range(10):
if i % 2 == 0:
continue
print(i)
for문과 break
break문은 특정 조건을 만족하면 반복문을 즉시 탈출합니다. (중단의 개념)
# for와 break
# 특정 조건을 만족하면, 반복문을 탈출한다.
import random
stop_number = random.randint(1,100)
for i in range(100):
if i == stop_number:
print(f"정수 {i}가 확인되어서 반복문을 멈춥니다.")
다중 for문
for 문도 아래 for 문을 사용할 수 있습니다. 다중 for 문은 특히 중요한데요. 엑셀에는 행과 열이 있습니다. 파이썬에서 엑셀 형태의 테이블 데이터를 다룰 수 있는 몇 가지 방법이 있는데, 그중에 하나가 다중 for 문입니다.
행과 열에 접근해야 하기 때문에 최소 2개의 for 문이 필요합니다. 다중 for 문은 철저히 연습하셔야 합니다. 먼저 이중 for 문입니다.
이중 for 문은 가장 바깥의 for 문의 원소 한 번당, 안쪽의 for 문이 모두 반복됩니다. 파란색 글씨를 기준으로 순서를 정리해 드리면 이중 for 문의 동작 원리는 아래와 같습니다.
※이중 for 문 동작 순서
1 → 1-1, 1-2,1-3,1-4,1-5
2 → 2-1, 2-2,2-3,2-4,2-5
3 → 3-1, 3-2,3-3,3-4,3-5
4 → 4-1, 4-2,4-3,4-4,4-5
5 → 5-1, 5-2,5-3,5-4,5-5
예제를 통해 익혀 보도록 하겠습니다. 아래 코드 결과를 보면, a가 고정인 상태에서 1부터 5까지의 숫자가 출력되는 것이 보입니다. 이를 통해 바깥의 for 문 원소 한 개당, 안쪽의 for 문이 계속 반복되는 것을 알 수 있습니다.
# 바깥의 for 문 원소 한 개 당, 안 쪽의 for 문이 모두 반복된다.
for i in ['a','b','c','d','e']:
for j in range(1,6):
print(i,j)
>>>>> 실행 결과
a 1
a 2
a 3
a 4
a 5
b 1
b 2
...
'Python > 기초' 카테고리의 다른 글
파이썬 함수 3편: 함수 안의 함수와 lambda (0) | 2023.08.28 |
---|---|
파이썬 함수 심화2: *args와 **kwargs (0) | 2023.08.27 |
파이썬 반복문: while에 대한 A to Z 한 글로 정리하기 (0) | 2023.08.25 |
다양한 예제 문제를 통해 살펴본 파이썬 if문의 모든 것 (0) | 2023.08.24 |
파이썬 강사가 정리한 파이썬 딕셔너리 A to Z 모든 것 (2) | 2023.08.23 |
댓글