for
while
문은 조건을 이용하여 반복 실행할 여부를 결정했다면, for
문은 순회 가능한 객체의 처음부터 마지막까지 반복하는 방식으로 동작한다. for
문은 다음과 같은 형식으로 사용한다.
for 변수 in 순회 가능한 객체:
실행할 코드
순회 가능한 객체에는 다음 단원에서 다룰 리스트(list
), 튜플(tuple
)이 있으며, 문자열이나 range
함수로 생성한 범위도 가능하다.
1부터 5까지 출력하는 프로그램을 for
문을 사용하여 작성하면 다음과 같다.
for 숫자 in [1, 2, 3, 4, 5]: # 1부터 5까지 반복
print(숫자, end=' ') # 숫자 출력
1 2 3 4 5
순회 가능한 객체로 문자열을 사용할 수 있다.
for 문자 in "프로그래밍": # 문자열 "프로그래밍"를 순회
print(문자, end=' ') # 문자 출력
프 로 그 래 밍
range(n)
0부터 100까지 print
함수를 사용하여 모두 작성하는 것은 너무나 비효율적이다. 반복할 범위가 정해져 있다면 range
함수를 사용하여 범위를 지정할 수 있다.
for i in range(100):
range(100)
을 사용하면 0부터 99까지 100개의 숫자를 생성하여, 변수 i
에 저장하고 100번 반복한다. range(n)
일 경우 0부터 n-1
까지의 수 만큼 반복되므로 0부터 100까지 반복하기 위해서는 range
범위를 101로 정해야 한다.
for i in range(101):
range(시작값, 종료값)
프로그램을 작성할 때, 0부터 시작하지 않고 특정 숫자부터 반복해야 할 경우가 있다. range
에서 시작값
과 종료값
을 지정하여 범위를 지정할 수 있다.
for i in range(시작값, 종료값):
주의해야 할 점은 range
의 범위는 시작값
부터 종료값-1
까지이다. 따라서 range(1, 5)
는 1부터 4까지의 범위를 가진다.
for i in range(1, 5): # 1부터 4까지 반복
print(i, end=' ') # i 출력
1 2 3 4
1부터 10까지 홀수만 출력하는 프로그램을 작성해보자.
for i in range(1, 11): # 1부터 10까지 반복
if i % 2 == 1: # i가 홀수인 경우
print(i, end=' ') # i 출력
1 3 5 7 9
range(시작값, 종료값, 증감값)
위 반복문은 10번을 실행하면서 조건문을 통해 홀수만 출력하도록 했다. if
문을 사용하지 않고 range
에서 증감값을 이용하여 홀수만 출력한다면 반복문의 실행 횟수를 줄일 수 있다.
for i in range(1, 11, 2): # 1부터 10까지 2씩 증가
print(i, end=' ') # i 출력
1 3 5 7 9
증감값을 음수로 지정하면 역순으로 반복할 수 있다.
for i in range(5, 0, -1): # 5부터 1까지 1씩 감소
print(i, end=' ') # i 출력
5 4 3 2 1
연습 문제
- 1부터 10까지의 합을 출력하는 프로그램을 작성하시오.
- 100이하의 자연수 중 3의 배수만 출력하는 프로그램을 작성하시오.
- 100이하의 자연수 중 7의 배수의 합을 출력하는 프로그램을 작성하시오.
- 정수
N
을 입력 받아 구구단 중N
단을 출력하는 프로그램을 작성하시오. (1 ≤N
≤ 9)- 입력 예시
- 출력 예시
2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18
- 입력 예시