머신러닝 및 딥러닝/Python

[파이썬] for문 사용하기 (반복문, range, 예제)

삡삐in오즈 2022. 10. 6. 12:40
728x90
반응형

 

반복문 (for문)

반복문(loop)은 어떠한 코드를 반복 처리를 하고 싶을때 사용할 수 있습니다.

for문은 주로 리스트, 딕셔너리, 튜플, range 같은 이터레이터(iterator) 객체에 사용됩니다. 

 

for문의 기본 형태:

for 변수 in 이터레이터 (리스트, 딕셔너리 등):

      코드

 

예제) 리스트 안에 요소 각각 출력하기

 

letters는 'a', 'b', 'c', 'd' 네 가지의 문자열을 가지고 있는 리스트입니다. for문을 통해 리스트 안에 있는 요소를 각각 출력해보겠습니다.

# 네 가지 요소가 저장된 리스트 'letters'
letters = ['a', 'b', 'c', 'd']

# 리스트에 print()코드를 반복적으로 적용하기
for x in letters:
    print(x)

 

output:

a
b
c
d

 

자세히 살펴보기:

for x in letters: 

처음에는 letters 리스트의 첫 번째 요소인 문자열 'a'를 x 변수로 선언을 하고 다음 문장인 print(x)에서 'a'값을 출력하게 됩니다.

그다음에는 letters 두 번째 요소인 'b'를 x 변수로 선언을 하고 출력, 세 번째 요소인 'c'를 출력하고 리스트의 마지막 아이템까지 출력을 합니다. 

 

여기서 변수 이름은 x 대신 아무 문자열이 사용 가능하며 주로 문맥에 맞게 각 요소를 부르는데 알맞은 이름을 사용하면 좋습니다.

예를 들어 여러 가지 과일이 담긴 과일 리스트는 for fruit in fruit_list 이런 식으로 하면 읽기도 쉬운 코드가 됩니다 :)

 

 

range 사용

range 함수는 for문이랑 같이 자주 사용하며 연속된 숫자 범위(시퀀스)를 만들어 준다.

range(시작, 끝, step) 형식으로 입력 가능하다.

 

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

시작과 step 파라미터는 옵션이라 숫자 5만 넣어주면 디폴트로 0에서 시작된다.

0
1
2
3
4

 

숫자 두 개를 넣어서 시작과 끝을 정해줄 수 있다. 

for x in range(2, 5):
    print(x)
2
3
4

 

for문과 range를 제가 제일 많이 쓰는 방식은 리스트의 길이가 매우 길 경우입니다.

range(len(리스트))를 사용하면 자동으로 0부터 리스트의 길이까지 숫자 범위를 만들어내 인덱스로 사용 가능합니다. 

 

grades = [100, 56, 89, 75, 66, 35, 45, 88, 78, 99, 96, 12, 56, 78, 99, 66, 55, 88, 77, 66]

for idx in range(len(grades)):
    print(idx, grades[idx])

 

실행결과:

0 100
1 56
2 89
3 75
4 66
5 35
6 45
7 88
8 78
9 99
10 96
11 12
12 56
13 78
14 99
15 66
16 55
17 88
18 77
19 66

 

 


for문 응용 1: 리스트 합, 평균

리스트 요소들의 합 구하기. total이라는 변수를 미리 0으로 지정해 준후 리스트 안에 요소를 순차적으로 더해주는 코드입니다.

num_list = [1, 3, 5, 7]

total = 0

for num in num_list:
    total += num

print(total)
print('평균', total/len(num_list))

 

실행결과:

16
평균 4.0

 

 

for문 응용 2: 리스트 거꾸로

리스트 요소를 반대로 마지막에서 앞으로 진행하고 싶을 경우 파이썬 reverse() 함수를 사용해도 됩니다.

num_list = [1, 3, 5, 7]

for num in reversed(num_list):
    print(num)
7
5
3
1
728x90
반응형