본문 바로가기
Python

[Python] 26 - 제어문 - for

by 진홍이 2021. 9. 15.
728x90

파이썬을 시작하기에 앞서 기본기부터 알아보겠습니다.

for 제어문에 대해서 배워보겠습니다.

 

먼저 for문을 하기전에 알아두어야할 함수가 있습니다. 

바로 range() 입니다.

for문을 range함수와 자주 사용하기 때문에 미리 알아두고 넘어가겠습니다.

1.range()

range함수는 정수값(int)을 괄호 안에 써주면 규칙적인 수들의 집합으로 만들어 주는 함수 입니다.

예를 들어 보겠습니다.

#range 함수
#range(시작숫자,종료숫자,step)

range(10)		#0이상 10미만의 수
range(1,10)		#1이상 10미만의 수
range(1,10,2)		#1이상 10미만의 수를 2씩 증가
  • range(시작숫자,종료숫자,step) 형식으로 입력합니다.
  • 시작숫자와 step은 생략 가능합니다.
  • 결과는 시작숫자이상 종료숫자미만의 수를 step씩 증가하며 반환합니다.

 

for문의 기본 구조

for 변수 in 리스트(또는 튜플, 문자열):
    수행할 문장1
    수행할 문장2
    ...

for문

1.for문은

in 뒤에오는 리스트(또는 튜플,문자열) 만큼 반복하는 반복문 입니다.

리스트의 첫번째 요소가 변수에 대입된 후 for문 내의 문장들을 실행합니다.

다음은 두번째 요소가 변수에 대입된 후 for문 내의 문장들을 실행합니다.

리스트의 마지막 요소까지 이것을 반복합니다.

 

2.range

for문은 위에 설명한 range함수와 자주 사용합니다.

range를 사용하여 간단히 1부터 10까지 출력하는 for문을 작성해 보겠습니다.

for i in range(1,11):
	print(i)

range함수를 사용하여 1이상 11미만의 숫자를 반복하여 출력하였습니다.

 

3.continue

while처럼 for문에서도 continue를 사용할 수 있습니다. 

while에서와 같이 1부터 10까지 중에 홀수만 출력하는 for문을 만들어 보겠습니다.

for i in range(1,11):		#1부터 10까지 반복
    if i % 2 == 0:continue	#짝수면 건너뛰기
    print(i)			#i출력

4.리스트 내포 사용

리스트 안에 for문을 포함하는 것을 리스트 내포 라고 합니다.(List comprehension)

좀더 편리하고 직관적인 프로그램을 만들 수 있습니다.

 

일반적 리스트 내포의 문법

[표현식 for 항목 in 반복가능객체]

감을 잡기위해 예제를 보겠습니다.

1부터 5까지의 숫자가 들어있는 리스트에 각 2씩 곱해보겠습니다.

num = [1,2,3,4,5]
result = []
for i in num:
	result.append(i*2)
	print(result)

#[2, 4, 6, 8, 10]

이번엔 리스트 내포를 사용하여 2를 곱해 보겠습니다.

num = [1,2,3,4,5]
result = [i * 2 for i in num]	#[표현식 for 항목 in 반복가능객체]
print(result)
#[2, 4, 6, 8, 10]

같은 결과이지만 코드가 좀더 직관적이면서 편리해 졌습니다.

 

 

if도 사용할 수 있습니다.

[표현식 for 항목 in 반복가능객체 if 조건문]	#if생략 가능

if문을 추가해 1부터 5까지 들어있는 리스트 중에서 짝수만 골라 2를 곱해 보겠습니다.

num = [1,2,3,4,5]
result = [i * 2 for i in num if i % 2 == 0]	#[표현식 for 항목 in 반복가능객체 if 조건문]
print(result)
#[4, 8]

 

for문을 여러 번 사용할 수도 있습니다.

[표현식 for 항목1 in 반복가능객체1 if 조건문1
        for 항목2 in 반복가능객체2 if 조건문2
        ...
        for 항목n in 반복가능객체n if 조건문n]

예시로 리스트 내포를 사용하여 구구단 결과를 리스트로 만들어 보겠습니다.

result = [i * j for i in range(2,10)
                for j in range(1,10)]
print(result)

 

이렇게 while문을 알아보았습니다.

궁금한 점이나, 잘못된 점이 있다면 댓글로 달아 주시기 바랍니다.

 

728x90