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
반응형
'프로그래밍 > [Python] 파이썬' 카테고리의 다른 글
[Python] 모듈 없이 간단한 초를 시분초로 변환하기 (Time conversion in seconds) (0) | 2024.09.22 |
---|---|
[Python] 파이썬 자주 사용하는 내장 함수 10가지 (0) | 2024.09.21 |
[Python] 파이썬 while 문 - 반복문 (0) | 2024.09.19 |
[Python] 파이썬 조건문 - if, elif, else (0) | 2024.09.14 |
[Python] 파이썬 삼항 연산자 (0) | 2024.09.13 |