파이썬 for문(Python For Loop)은 while문과 함께 특정 코드를 반복적으로 수행한다. 이글에서는 파이썬 for문 문법과 활용법에 대해 알아본다.
파이썬 for문 기본 구조
for문 구조는 다음과 같다.
for 변수 in 리스트(또는 문자열, range()):
수행할 문장 1
수행할 문장 2
...
예제1) 정수 리스트
정수 리스트에 포함된 모든 항목의 합을 구하는 예제이다. for문 반복되는 동안 num 변수가 num_list의 1부터 10까지를 차례로 가리키며 sum에 합산된다.
num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sum = int(0)
for num in num_list:
sum += num
print("total:", sum)
total: 55
예제2) 문자열
문자열에 포함된 문자 각각을 출력하는 예제이다.
s = "가나다라마바사"
for item in s:
print(item)
가
나
다
라
마
바
사
예제3) 문자열 리스트
문자열 리스트에 포함된 문자열 각각 출력하는 예제이다.
str_list = ['one', 'two', 'three']
for i in str_list:
print(i)
one
two
three
break/continue 사용
for문을 제어하는 방법에는 break
와 continue
이 있다.
break
: 제어 흐름 중단continue
: 제어흐름 유지, 코드 실행만 건너뜀
break/continue은 for문 뿐만 아니라 while문에서도 동일하게 사용가능하다.
for문에서 break 사용
아래는 0부터 999까지 반복하면서 값을 출력하다가 100에서 멈추는 코드이다.
for i in range(1000):
print(i)
if i == 100:
break
1
2
3
... 생략
98
99
100
for문에서 continue 사용
for문이 수행되는 도중 continue
을 만나면 다음 반복 조건으로 for문 loop 처음으로 돌아간다.
아래 예제는 80점 이상인 score 개수를 구하는 코드로, 스코어(score)가 80 미만이면 continue
으로 다음으로 넘어 가게 된다.
scores = [90, 88, 67, 45, 82]
count = 0
for score in scores:
if score < 80:
continue
count += 1
print(count)
3
for문과 range() 함수
for문은 숫자 리스트를 만들어 주는 range()함수와 함께 사용되는 경우가 많다.
range() 함수의 간단한 사용법은 다음과 같다. x는 0부터 6미만인 5까지 범위값을 갖는 리스트이다.
for x in range(6):
print(x)
0
1
2
3
4
5
숫자 리스트 시작을 명시하려면 아래와 같이 시작 인자를 사용하면된다.
for x in range(2, 6):
print(x)
2
3
4
5
위 두 range()의 예는 숫자 간격이 default=1 이다. 이 간격을 정하고 싶을 때는 아래와 같이 사용하면 된다.
for x in range(2, 20, 3):
print(x)
2
5
8
11
14
17
다음은 for문과 range()함수를 이용한 구구단 출력 예제이다.
for i in range(2,10):
for j in range(1, 10):
print(i*j, end=" ")
print('')
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
for문 pass 사용
for
문은 비워둘 수 없다. 만약 내용이 없는 loop가 오류가 발생하지 않도록 하기 위해서는 아래와 같이 pass
를 사용하면 된다.
for x in [0, 1, 2]:
pass
for문 에서 else 사용
else
는 for
문 loop가 완료될 때 실행될 코드 블럭을 지정한다.
for x in range(6):
print(x)
else:
print("Finally finished!")
0
1
2
3
4
5
Finally finished!