본문 바로가기

카테고리 없음

[파이썬, Python] for문 활용법 총정리

 

[ 파이썬 for문 활용법 ]

 

 

* 코드는 기본적으로 <입력값 # 출력값> 으로 구성되어 있습니다.

 

* 아래 [더보기] 클릭 후 [Ctrl + F] 단축키를 활용하여 찾고 계신 함수 위치로 바로 가실 수 있습니다.

더보기

기본형(1) : for in
기본형(2) : for in range
기본형(3) : 다중 for문
for 관련 함수 : continue, break
for 관련 함수 : else
리스트 내포

 

 

기본형(1) : for in

 

for 변수 in 객체:

    실행문

 

  • 여기서 객체는 일반적으로 문자열, 리스트, 튜플, 딕셔너리를 의미함
  • 변수는 객체의 첫 인덱스에 해당하는 값부터 마지막 인덱스에 해당하는 값까지 차례대로 정의됨
  • ex) for x in 'abc' 일 경우 x는 'a' 부터 시작하여 'b', 'c' 순으로 정의됨
  • ex) for x in [1, 2, 3] 일 경우 x는 1 부터 시작하여 2, 3 순으로 정의됨
  • ex) for x in {'one':1, 'two':2, 'three':3} 일 경우 x 는 'one' 부터 시작하여 'two', 'three' 순으로 정의됨 
  • ex) for [x, y,] in [[1, 2], [3, 4], [5, 6]] 일 경우 x, y는 각각 1, 2 부터 시작하여 3, 4 그리고 5, 6의 값으로 정의됨
for x in 'abe':
	print(x)

# 출력값 : a / b / c

for x in [1, 2, 3]:
	print(x)

# 출력값 : 1 / 2 / 3

for x in {'one':1, 'two':2, 'three':3}:
	print(x)

# 출력값 : one / two / three

for [x, y] in [[1, 2], [3, 4], [5, 6]]:
	print(x, y)
    
# 출력값 : 1 2 / 3 4 / 5 6

 

 

기본형(2) : for in range

 

for 변수 in range(시작값, 끝값, 증감크기):

    실행문

 

  • 변수가 (시작값) 부터 (끝값-1) 까지 (증감크기) 간격으로 증가하면서 실행문을 실행함
  • for i in range(0, 10, 1) 라면 i 는 1 부터 9 까지 1 씩 증가하며, 실행문은 총 9번 실행됨
  • for 변수 in range(값1) : range( ) 에 변수가 1개라면 끝값=값1 이 되고 시작값=0, 증감크기=1이 됨
  • for 변수 in range(값1, 값2) : range( ) 에 변수가 2개라면 시작값=값1, 끝값=값2 가 되고 증감크기=1이 됨
  • 증감크기를 생략하거나, 시작값과 증감크기를 함께 생략할 수 있음
for i in range(0, 10, 2):
	print(i)

# 출력값 : 0 / 2 / 4 / 6 / 8

for i in range(0, 10):
	print(i)

# 출력값 : 0 / 1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9

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

# 출력값 : 0 / 1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9

 

 

기본형(3) : 다중 for문

  • for문 내에 여러 for문을 포함시킬 수 있음
for i in range(2):
	for j in range(2):
		for k in range(2):
			print(i, j, k)

# 출력값 : 0 0 0 / 0 0 1 / 0 1 0 / 0 1 1 / 1 0 0 / 1 0 1 / 1 1 0 / 1 1 1

 

 

for 관련 함수 : continue, break

  • continue : continue 다음 실행문은 실행되지 않음
  • break : for 문을 종료함
  • 일반적으로 continue 는 for문의 특정 순간을 생략하며, break 는 for문의 남은 과정을 모두 취소함
for i in range(3):
	if i == 1:
    	continue
	print(i)
    
# 출력문 : 0 / 2

for i in range(10):
	if i == 3:
    	break
	print(i)
    
# 출력문 : 0 / 1 / 2

 

 

for 관련 함수 : else

  • else : for문이 정상적으로 종료된 뒤 실행됨, break 로 인해 for문이 종료된 경우 실행되지 않음
for x in [1, 2, 3]:
	print(x)
else:
	print('끝')

# 출력값 : 1 / 2 / 3 / 끝

for x in [1, 2, 3]:
	if x == 2:
    	break
	print(x)
else:
	print('끝')
    
# 출력값 : 1

 

 

리스트 내포

 

[표현식 for 변수1 in 객체1 if 조건문1

           for 변수2 in 객체2 if 조건문2

           ......

           for 변수n in 객체n if 조건문n]

 

  • 위와 같이 for 변수 in 객체 if 조건문은 2개 이상으로 구성할 수도 있음
  • if 조건문은 생략 가능함
a = 'abcde'
b = [val + 'k' for val in a]
print(b)

# 출력값 : ['ak', 'bk', 'ck', 'dk', 'ek']

a = [1, 2, 3, 4, 5]
b = [val * 5 for val in a]
print(b)

# 출력값 : [5, 10, 15, 20, 25]

a = 'abcde'
b = [val + 'k' for val in a if val == 'c']
print(b)

# 출력값 : ['ck']

a = [1, 2, 3, 4, 5]
b = [val * 5 for val in a if val < 3]
print(b)

# 출력값 : [5, 10]

a1 = [1, 2, 3]
a2 = [6, 7 ,8]
b = [val1 + val2 for val1 in a1 if val1 < 3
		 for val2 in a2 if val2 < 7]
print(b)

# 출력값 : [7, 8]
# (val1, val2) 순서는 (1,6), (1,7), (1,8), (2,6), (2,7), (2,8), (3,6), (3,7), (3,8) 이며,
# 각 조건문에 따라 (1,6)과 (2,6)만 채택됨