일단해봐

[Python] for 문 사용법 정리 (Range/ List/ 리스트(List) 내) 본문

Python

[Python] for 문 사용법 정리 (Range/ List/ 리스트(List) 내)

GoEz 2021. 4. 19. 23:56

Python의 for 몇 가지 형태를 갖고있다.

처음 Python을 접했을 때 For문의 형태가 혼돈 스러웠다.

아마도 for문이 C언어에 비해서 조금 다양한 형태를 갖고 있기 때문인것 같다.

처음 보면 혼란 할 수 있지만 조금 익숙해지면 너무 직관적인 파이썬(Python) For문의 종류에 대해서 알아보자.

우선 Code 부터 보면 아래와 같다.

# 짝수만 출력하는 프로그램을 짜보자

# 1. 일반적인 For 문 형태(Range 이용)
print('>>>> 일반적인 For 문 형태(Range) <<<<')
for i in range(1, 5):
    if i%2 == 0:
        print(i)


# 2. 일반적인 For 문 형태(List 이용)
num = [1, 2, 3, 4, 5]
print('>>>> 일반적인 For 문 형태(List) <<<<')
for i in num:
    if i%2 == 0:
        print(i)

# 3. List 내 For 문 형태
print('>>>> List 내 For 문 형태 <<<<')
[print(i) for i in num if i%2 == 0]

위 Code는 1 ~ 5 사이 숫자 중 짝수만 출력하는 Code를 3 가지 형태의 for문으로 작성한 예제 코드이다.

각각의 형태에 대해 살펴 보자.

 

1. Range()를 이용한 for 문

일반적으로 가장 사용 빈도가 높은 for문으로 range() 함수를 활용한 for 일 것 같다.

우선 range() 함수를 알아보면 기본 사용법은range(시작숫자, 마지막 숫자+1,증가량)이다.

증가량이 '1` 인 경우 생략 가능하다. 즉, range(시작숫자, 마지막 숫자+1)식으로 표현 가능하다.

따라서 아래 code의 range(1, 6) -> \[1, 2, 3, 4, 5\] 를 나타낸다.

for i in range(1, 6)는 for문이 실행 될 때 마다 range에 정의된 숫자를 변수 i에 하나씩 대입한다.

즉, 첫번째 for 실행 시 i = 1, 두번째 실행시 i = 2, .... 이러식으로 동작한다.

  • Code
# 1. 일반적인 For 문 형태(Range 이용)
print('>>>> 일반적인 For 문 형태(Range) <<<<')
for i in range(1, 6):
    if i%2 == 0:
        print(i)
  • 출력

 

2. List를 이용한 for 문

List를 이용한 for문으로 range()를 이용한 for문과 비슷 한데 range()자리에 list를 넣었다는 차이점 밖에 없다.

List를 활용하다 보니 range 사용시 보다 자유도가 높다. (순차적인 숫자열이 아닌 경우도 사용 가능)

아래 예제에서는 1 ~ 5까지 순차적인 숫자를 list로 만들어 사용하였다.

앞에서와 마찬가지로, 첫번째 for 실행 시 i = 1, 두번째 실행시 i = 2, .... 이러식으로 동작한다.

  • Code
# 2. 일반적인 For 문 형태(List 이용)
num = [1, 2, 3, 4, 5]
print('>>>> 일반적인 For 문 형태(List) <<<<')
for i in num:
    if i%2 == 0:
        print(i)
  • 출력

 

3. List 내 for 문

List 내 for문은 말 그데로 List 내에 for문을 사용하는 방법으로 제일 낯설지만 어떻게 보면 가장 직관적인거 같다.

[실행문 + for i in (rang or list) + 조건문] 과 같은 방식으로 쓸 수 있다. 

 

  • Code
# 3. List 내 For 문 형태
print('>>>> List 내 For 문 형태 <<<<')
[print(i) for i in num if i%2 == 0]
  • 출력

 

 

Comments