본문 바로가기
프로그래밍/[Python] 파이썬

[Python] 파이썬 for문 완벽 정리 - 필수 반복문

by GenieIT* 2024. 9. 20.
728x90
반응형
728x90
반응형

 

※ for 반복문이란?

파이썬 for문은 반복 (iteration) 을 제어하는 기본적인 제어문이다. 리스트, 튜플, 문자열, 딕셔너리, 세트와 같은 반복 가능한 (iterable) 객체를 순회하며 각 요소에 대해 특정 작업을 수행할 때 사용됩니다.

 

1. 기본 구조

for 변수 in 반복 가능한 객체:
    실행할 코드

 

2. 시퀀스 (리스트, 튜플, 문자열)

  • 순서가 존재하는 객체

2-1. 리스트 (List)

li = ['apple', 'banana', 'cherry']

for k in li :
    print(k)

'''
실행 결과
apple
banana
cherry
'''

 

2-2. 튜플 (Tuple)

tu = (1, 2, 3)

for k in tu :
    print(k)

'''
실행 결과
1
2
3
'''

 

2-3. 문자열

for k in "python" :
    print(k)

'''
실행 결과
p
y
t
h
o
n
'''

 

3. 비시퀀스 (딕셔너리, 세트)

  • 순서가 존재하지 않는 객체

3-1. 딕셔너리 (Dictionary)

dict = {'name':'bambi', 'age': 40, 'loc': 'Incheon'}

for k in dict :
    print(k)

'''
실행 결과
name
age
loc
'''
  • keys() : 딕셔너리 키만 호출
  • values() : 딕셔너리 값만 호출
  • items() : 딕셔너리 키, 값을 쌍으로 튜플 형태로 호출
dict = {'name':'bambi', 'age': 40, 'loc': 'Incheon'}

for k in dict.keys() :
    print(k)

'''
실행 결과
name
age
loc
'''

for v in dict.values() :
    print(v)

'''
실행 결과
bambi
40
Incheon
'''

for k, v in dict.items() :
    print(k, v)

'''
실행 결과
name bambi
age 40
loc Incheon
'''

 

3-2. 세트 (Set)

se = {1, 2, 3, 3, 4}

for k in se :
    print(k)

'''
실행 결과
1
2
3
4
'''

 

4. range() 내장 함수

4-1. 기본 구조

range(초깃값, 종료값, 증감값)
  • 초깃값부터 종료값 이전 숫자까지 컬렉션을 만듭니다.
  • 초깃값 <= n < 종료값
  • 초기값 생략 가능 (default: 0)
  • 종료값 생략 불가
  • 증감값 생략 가능 (default: 1)

 

4-2. 간단한 실행

for k in range(3) :
    print(k)

'''
실행 결과
0
1
2
'''

 

4-3. 초기값, 종료값, 증감값 사용법

# 초기값, 종료값 설정
for k in range(3, 10) :
    print(k)

'''
실행 결과
3
4
5
6
7
8
9
'''

# 초기값, 종료값, 증감값 설정
for k in range(3, 10, 2) :
    print(k)
    
'''
실행 결과
3
5
7
9
'''

# 숫자 감소 순회
for k in range(1, -5, -1) :
    print(k)

'''
실행 결과
1
0
-1
-2
-3
-4
'''

 

4-4. 중첩 루프

for i in range(2) :
    for j in range(3) :
        print(f'i값 : {i}, j값 {j}')

'''
실행 결과
i값 : 0, j값 0
i값 : 0, j값 1
i값 : 0, j값 2
i값 : 1, j값 0
i값 : 1, j값 1
i값 : 1, j값 2
'''

 

5. enumerate() 내장 함수

  • 반복 (iteration)을 할 때 인덱스 번호와 요소를 동시에 추출할 수 있는 내장 함수

5-1. 기본 구조

enumerate(반복 가능한 객체, 시작 인덱스=0)

 

5-2. 시퀀스 (리스트, 튜플, 문자열)

# 리스트 타입
li = ['apple', 'banana', 'cherry']

for idx, k in enumerate(li) :
    print(f'index번호:{idx}, 값:{k}')

'''
실행 결과
index번호:0, 값:apple
index번호:1, 값:banana
index번호:2, 값:cherry
'''

# 튜플 타입
tu = (1, 2, 3)

for idx, k in enumerate(tu) :
    print(f'index번호:{idx}, 값:{k}')

'''
실행 결과
index번호:0, 값:1
index번호:1, 값:2
index번호:2, 값:3
'''

# 문자열 타입
s = "python"

for idx, k in enumerate(s) :
    print(f'index번호:{idx}, 값:{k}')


'''
실행 결과
index번호:0, 값:p
index번호:1, 값:y
index번호:2, 값:t
index번호:3, 값:h
index번호:4, 값:o
index번호:5, 값:n
'''

 

5-3. 비시퀀스 (딕셔너리, 세트)

  • 딕셔너리 타입은 순서가 없는 자료 구조이기는 하나 파이썬 3.7 버전 이후로는 인덱스 번호가 동일하게 유지되도록 변경 되었습니다. 딕셔너리 자료형에 삽입된 순서를 기준으로 인덱스 번호를 만듭니다.
  • 세트 타입은 순서가 없는 자료 구조이기 때문에 해당 함수 사용시 인덱스 번호가 항상 동일하게 나오지 않습니다.
# 딕셔너리 타입
dict = {'name':'bambi', 'age': 40, 'loc': 'Incheon'}

for idx, k in enumerate(dict) :
    print(f'index:{idx}, 키:{k}')

'''
실행 결과
index:0, 키:name
index:1, 키:age
index:2, 키:loc
'''

for idx, v in enumerate(dict.values()) :
    print(f'index:{idx}, 값:{v}')

'''
실행 결과
index:0, 값:bambi
index:1, 값:40
index:2, 값:Incheon
'''

for idx, (k, v) in enumerate(dict.items()) :
    print(f'index:{idx}, 키:{k}, 값:{v}')
'''
실행 결과
index:0, 키:name, 값:bambi
index:1, 키:age, 값:40
index:2, 키:loc, 값:Incheon
'''

# 세트 타입
se = {'apple', 'banana', 'cherry'}

for idx, k in enumerate(se) :
    print(f'index:{idx}, 키:{k}')

'''
실행 결과
index:0, 키:banana
index:1, 키:cherry
index:2, 키:apple
'''

 

6. 파이썬스러운 문법

li1 = [1, 2, 3]
li2 = [n * 3 for n in li1]

print(li2)

'''
실행 결과
[3, 6, 9]
'''

 

7. continue, break 문

7-1. continue 문

  • 현재 반복을 건너뛰고, 다음 반복을 시작합니다.
# 홀수 출력
for k in range(10) :
    if k%2 == 0 :
        continue

    print(k)

'''
실행 결과
1
3
5
7
9
'''

7-2. break 문

  • 루프를 즉시 종료하고, 루프 밖으로 빠져 나옵니다.
for k in range(10) :
    if k == 4 :
        break

    print(k)

'''
실행 결과
0
1
2
3
'''

 

8. 응용 예제

8-1. 출력 횟수를 정수로 입력 받고, for문을 활용하여 'Hello Bambi'를 출력 횟수 만큼 출력하는 프로그램을 만드시오.

더보기
count = int(input("출력 횟수를 입력 하시오."))

for k in range(count) :
    print('Hello Bambi')

'''
실행 결과
출력 횟수를 입력 하시오. 3
Hello Bambi
Hello Bambi
Hello Bambi
'''

 

8-2. 출력할 구구단을 입력 받고, for문을 활용하여 구구단을 출력하시오.

더보기
gugudan = int(input("출력할 구구단을 입력 하시오."))

for dan in range(1, 10) :
    print(f'{gugudan} x {dan} = {gugudan*dan}')

'''
실행 결과
출력할 구구단을 입력 하시오. 2
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
'''

 

8-3. 각 과목 시험 점수를 저장한 리스트 변수 exam 이 있다. 각 과목마다 10점씩 더한 총점을 for문을 활용해서 구하시오.

exam = [70, 75, 80, 90]

더보기
exam = [70, 75, 80, 90]
add_total = sum([score+10 for score in exam])

print(add_total)

'''
실행 결과
355
'''

 


 

 

 

 

 

728x90
반응형