본문 바로가기
Python/Coding Base

6. 반복문(Iteration) - for문

by Nanki 2022. 1. 11.

동일한 명령어를 여러 번 실행하는 것을 반복이라고 한다. 파이썬에서는 이러한 명령어를 반복을 쉽게 하기위해 for문과 while문 두가지를 가지고 있다. 

for문과 while문, 잠깐 비교하고 갈까?

for문 : 정해진 횟수만큼 명령어를 반복하는 구조

while문 : 어떤 조건이 만족되는 동안, 명령어 반복을 계속하는 구조. (통상 무한루프용으로 많이 사용된다.)

  • 간단히 말해 명령어 반복 조건이 있고(while) 없고(for문) 차이 이다.

반복의 주체가 되는 것이 명령어이고, 이를 조건이 있으면 while문, 없으면 for문으로 나눈 것만 기억하면 된다.

또한 for문정해진 횟수라는 의미 ≒ 정해진 시퀀스가 있음이라 볼 수 있다.

for문, 그 과정이 알고 싶다.

for name in ['Jane', 'Anne', 'Mike', 'Kavin']:
	print("hellow!" + name)

이전 블로그 글을 참고하면 파이썬의 흐름을 알 수 있다. 내가 파이썬이라고 생각하고 이 문법을 읽어보자. 

1. for문을 읽으면서 반복문 구조의 기본틀임을 인지한다. 따라서 문법의 룰도 아래 문법을 따르게 되며 이 틀을 벗어나면 오류를 문법검사에서 오류를 출력한다. 

  • for문의 기본 틀
for 변수 in 시퀀스 :
	반복문장

2. for문 다음 name을 인지하면 뒤에 나올 in을 맞이할 변수(공간)을 확보한다.

3. name 다음 in 을 인지하면 뒤에 나올 시퀀스를 인지하고 첫 요소('Jane')를 변수('name')에 대입한다.

(시퀀스의 내용은 후에 자세히 다루도록 하겠다. 살짝 불편하더라도 넘어가자)

4. 시퀀스 다음 : 을 인지하면 이 문장이 여기서 끝이 아님을 알게 되며 다음 줄을 읽게 된다.

5. 변수('name')에 포함된 Jane이 print() 함수에 삽입하게 된다. 

6. print 함수를 실행되고 출력된다.

7. 다시 3번으로 넘어가 다음 요소인 Anne을 Name에 삽입하며 4~6번을 반복한다.

8. 이를 끝 요소인 Kavin이 출력될 때까지 반복한다.

 

for문의 쓰임

1) 리스트에 대한 반복 (위의 예에서 다룬 hellow! Jane)

2) 정수 리스트에 대한 반복

for x in [0,1,2,3,4,5,6,7,8,9]:
	print(x, end='')

3) 문자열 반복

for c in "zxcv":
	print(c, end="")

4) range(start, stop, step) 함수를 이용한 반복

start부터 stop-1까지 step의 간격으로 정수를 생성한다. start와 step은 생략이 가능하다. (즉, 일반 상수를 넣으면 0~stop-1 범위의 값이 생성된다.)

  • 추가로, range()는 얀속적인 값 생성시, 메모리 낭비를 줄이고자 제너레이터 객체를 리턴한다. 후~에 알아보자
for x in range(10) :
	sum = sum + x
print(sum)