justdoIT0730 2025. 4. 5. 14:29
728x90
728x90

for 문이란?

Iterable(반복 가능한 객체)를 순서대로 하나씩 꺼내면서 block 안의 코드를 반복 실행하는 구조.

 

▷ Python에서 Iterable 이 아닌 Type

  • int(정수)
  • float(실수)
  • bool(논리형)
  • None

 기본 문법

for [변수] in [반복 가능한 객체]:
	[실행 코드]
  • [변수] : 반복마다 꺼내지는 값을 담는 곳
  • [반복 가능한 객체] : 문자열, list, tuple, dictionary, range 등
  • 반복 가능한 객체 조건에 따라 [실행 코드] 가 수행된다.

문자열 반복

# 문자열 선언
text = "hello"

# 문자열을 순서대로 하나씩 출력한다.
for char in text:
	print(char)

 

결과

h
e
l
l
o

 

Iterable Type의 변수만 가능!


List 반복

# list 선언한다.
fruits = ["apple","banana", "cherry"]

# list 값을 순서대로 fruit 에 넣고 출력한다.
for fruit in fruits:
	print(fruit)

 

결과

# list 값들이 순서대로 출력된다.
apple
banana
cherry

enumerate 사용한 반복

# list 선언
fruits = ["apple", "banana", "cherry"]

# list 인덱스와 값을 차례로 출력
for index, fruit in enumerate(fruits):
	print(index, fruit)

 

결과

0 apple
1 banana
2 cherry

 

결과에서 index 와 fruit 사이에 공백이 있는 이유

더보기

print() 함수의 기본 문법은 아래와 같다.

print(*objects, sep=' ', end='\n')
  • *objects : 출력할 값
  • sep=' ' : 값 들 사이를 구분한 separator. 기본은 한 칸 공백(' ') 이다.
  • end='\n' : 출력 후 줄바꿈

그래서 

print(index, fruit)

print(str(index) + ' ' + str(fruit))

이다.

 

▷ 공백을 없애거나 바꾸는 법

 

1. 공백 없이 붙여 출력

print(index, fruit, sep='')  # 출력 결과 : 0apple

 

2. 구분자 변경하여 출력

print(index, fruit, sep=', ')  # 출력 결과 : 0, apple

 

3. f-string 사용

print(f"{index}-> {fruit}")  # 출력 결과 : 0-> apple

Dictionary 반복

# dictionary 선언
person = {'name': 'Alice', 'age': 25}

for key in person:
    print(key, person[key])

 

혹은 

for key, value in person.items():
    print(key, value)

 

items() 를 이용해서 key, value 를 동시에 출력할 수 있다.

 

중요!

python 3.6 version 이하에서는 dict 은 순서를 보장하지 않는다.

그래서 위 코드를 실행 시 age 가 먼저 출력될 수 있다.

python 3.7 version 이상에서는 순서를 보장하여 위처럼 선언 시 name, age 순으로 출력된다.

 


range 반복

일정한 정수 범위(sequence)를 생성하는 데 사용된다.

 

range() 기본문법

  • range(stop)
  • range(start, stop)
  • range(start, stop, step)
항목 description
start 시작값 (기본값 = 0)
stop 끝값(해당 값의 직전 까지 반복), 반드시 필요
step 증가값 (기본값 = 1, 음수도 가능), 0이 될 수 없다. 0으로 설정 시 error 발생.

 

range(stop) 예제

for i in range(5):
    print(i)

 

0 부터 4(5가 되기 직전) 까지 1(step 기본값)씩 증가하며 출력된다.

 

range(start, stop) 예제

for i in range(2, 6):
    print(i)

 

2 부터 5(6이 되기 직전) 까지 1(step 기본값)씩 증가하며 출력된다.

 

range(start, stop, step)

for i in range(1, 10, 2):
    print(i)

 

1 부터 2씩 증가하여 9(10이 되기 직전) 까지 출력된다.

 

결과

1
3
5
7
9

 

만약 step 이 음수인 경우

for i in range(5, -1, -1):
    print(i)

 

5 부터 -1 씩 감소하여 0(-1 이 되기 직전) 까지 출력된다.

 

다른 예시

for i in range(5, -2, -1):
    print(i)

 

5 부터 -1씩 감소하여 -1(-2 가 되기 직전) 까지 출력된다.

728x90
728x90