for문이다. 파이썬을 쓰는 한 어떤 프로그램이던 for문을 쓰게 될 것이다.

 

C언어와 자바의 그것과는 좀 다르다.

 

*먼저 C언어의 for 루프이다. i라는 인덱스를 0부터 9까지 총 10번 반복하는 문장이다. 이것이 표준문장이라 보면된다. 어느 설명에도 다 이렇게 써있다. 자바도 비슷하다. 초기화; 비교연산; 인덱스 증감식; 자바도 비슷하다.

 


for(int i = 0; i < 10; i++){
	printf("%d\n",i);
}

파이썬을 보면 다르다.

for i in range(10):
    print(i)
    
#출력값

0
1
2
3
4
5
6
7
8
9

for 요소값 in range(10)은 iterable 이다. iterable은 생소한 개념인데 쉽게말해 range 함수는 for문 안에서 0부터 9까지 10개의 정수를 차례로 리턴한다. for문은 한번의 루프가 돌 때 마다 하나씩 받아서 코드블록을 실행한다.

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

range함수를 리스트 함수에 넘겨주면 리스트를 생성한다. 리스트도 iterable 이라 for문에 사용가능하다.

 

>>> a = [0,1,2,3,4,5,6,7,8,9]
>>> for i in a:
	print(a[i])

#결과값
0
1
2
3
4
5
6
7
8
9
>>> for i in a:
	print(i)

#결과값	
0
1
2
3
4
5
6
7
8
9
>>> a = list(range(10))
>>> for i in a:
	print(a[i])

#결과값
0
1
2
3
4
5
6
7
8
9

iterable을 for문으로 다양하게 표현 가능하다.

 

문자열도 list도 사용가능하다.

>>> fruits = ['apple','orange','kiwi','melon','strawberry']
>>> for i in fruits:
	print(i)

#결과값
apple
orange
kiwi
melon
strawberry

iterable에서 더이상 요소가 나오지 않으면(요소의 끝까지 수행하면) for문은 종료한다. while문하고 다른 부분은 for문은 어느정도 끝이 예상이 될 때 사용하고, while문은 동작이 유지되는 조건을 걸때 사용한다... 만 알고리즘을 짜는 것에 달려있다.

tp1 = [(1,2),(3,4)]
for (x,y) in tp1:
    print(x, y)
    
#결과값

1 2
3 4

튜플도 사용할 수 있다. iterable 과 같이 사용할 수 있기 때문에 다양한 for 문의 사용법이 있으니 하나씩 배워가는 재미가 있다.

 

의외로 자바에도 비슷한 사용 방식이 있다. 궁금한 경우 자바에 관련되 포스트를 참고한다.

 

자바 반복문 (for)

 

자바 튜토리얼 (4-4) 반복문 (for)

반복문 하면 떠오르는 for 반복문이다. 자바의 for문은 기본은 C언어와 같기 때문에 C언어를 배운 사람은 쉽게 적응할 수 있다. 1. for 문 구조 for(초기화; 조건식; 카운터 증감){ 코드; } 첫인상은 그�

digiconfactory.tistory.com

의외로 초반에 등장하는 iterable 에 관한 부분은 뒷부분에 가서 배우게 된다. 생각보다 어려운 개념이다. 궁금하면 아래의 링크를 읽어보는 것을 추천한다.

 

range iterable

 

Python: range is not an iterator! - Trey Hunner

After my Loop Better talk at PyGotham 2017 someone asked me a great question: iterators are lazy iterables and range is a lazy iterable in Python 3, so is range an iterator? Unfortunately, I don’t remember the name of the person who asked me this questio

treyhunner.com

* for문 continue문

for i in range(1,50):
    if i%5 == 0:
        print()
        continue
    print("%3.d"%i,end=", ")

5를 제외

for문에도 continue문을 사용할 수 있다. while처럼 continue문을 만나면 for문의 처음으로 돌아간다. 예제에는 5의 배수를 제외했다.

 

* range 함수의 사용법

for문은 range 함수를 많이 사용하므로 몇가지 사용법을 예시한다.

# range(시작점,끝점 하나 뒤, 증감)

for i in range(5):
    print(i, end=" ")

print()

for i in range(1,6):
    print(i, end=" ")

print()

for i in range(2,11,2):
    print(i, end=" ")

print()

for i in range(5,0,-1):
    print(i, end=" ")

print()

for i in range(9,0,-2):
    print(i, end=" ")

# range(끝점 하나 뒤)

# range(시작점,끝점 하나 뒤)

# range(시작점,끝점 하나 뒤, 증감)

 

의 형식으로 사용가능하다.

 

결과값 range함수

while 과 for 문은 호환이 가능한 부분이 많다. 상황에 적절한 반복문을 사용하도록 한다.

 

 

 

파이썬 반복문 | while 루프, for 루프 | 열린 파이썬 독학 3-1 - 메타버스의 코딩

파이썬 반복문을 학습합니다. for 루프와 while 루프의 사용법을 배울 수 있습니다.

metaversemachine.com

 

공유하기

facebook twitter kakaoTalk kakaostory naver band