for 반복문의 정의
파이썬의 제어문 중 하나로 프로그램의 실행을 반복할 수 있음
조건문과 마찬가지로 들여쓰기와 콜론이 매우 중요!
반복 가능한 객체를 순회하며 반복문 안의 코드를 한번씩 실행
1) 반복 객체에서 순서대로 하나씩 값을 가져옴
2) 아이템에서 가져온 값을 담음
3) 실행 코드 수행
4) 반복 객체가 끝날 때까지 순차적으로 반복
리스트, 튜플 등 집합 자료형을 사용하여 요소를 하나씩 가져와 반복 가능
반복 가능 객체인 문자열, 사전, 집합 자료형으로도 반복문 사용 가능 숫자는 불가능
반복 가능한 객체는 모두 올 수 있으며, 반복 불가능한 객체는 올 수 없음
#정수형은 반복 불가능 하다.
for i in 10: # 정수형은 반복 불가능하다.
print(i)
#리스트
#리스트
for i in [1,2,3]:
print(i)
1
2
3
#사전 자료형
for i in {1,2,3}:
print(i)
1
2
3
#튜플
for i in (1,2,3):
print(i)
1
2
3
#문자열
for i in "Hello":
print(i)
H
e
l
l
o
반복 객체 함수
Iterable 객체란 뜻으로 객체의 멤버를 하나씩 반환할 수 있음
대표적으로 시퀀스 데이터 타입인 리스트(List), 튜플(Tuple), 스트링(String)등이 있음
collections.Iterable에 속한 인스턴스(instance: 만들어진 객체, 생성된 객체)인지 아닌지
반복 가능한 객체를 판별할 수 있음
for 반복문에 쓸 객체가 반복 가능한지 체크하는 함수
import collections
obj = [1,2,3,4]
isinstance(obj, collections.Iterable)#반복가능한 객체면 True 아니면 False
True
import collections
obj = "Hello, Python World~!!"
isinstance(obj, collections.Iterable)#반복가능한 객체면 True 아니면 False
True
import collections
obj = 10
isinstance(obj, collections.Iterable)#반복가능한 객체면 True 아니면 False
False ->obj가 10이므로 정수형, 정수형은 반복가능한 개체가 아니라 False가 출력된다.
range() 함수
반복 가능한 객체를 반환해 주는 함수
range(시작[이상], 끝[미만], 스탭) 로 정의
반복문에 많이 활용
순차적으로 값을 반환하기 때문에 리스트 등의 다른 자료형과 함께 사용할 수 있음
print(range(10)) # 0에서 9까지의 수를 나타낸다
range(0, 10)
l = list(range(10))
print(l)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
l = list(range(0,10,2)) # 0부터 9까지 2씩 건너뛰고 출력 짝수
print(l)
[0, 2, 4, 6, 8]
l = list(range(1,10,2)) # 1부터 9까지 2씩 건너뛰고 출력 홀수
print(l)
[1, 3, 5, 7, 9]
반복문 활용
반복 객체의 값을 바로 가져와서 사용하거나, range(), len() 함수를 활용해 인덱스로 접근 또한 가능
#인덱스 접근 예시
l = ['a', 9, [1,2,3],('a','b')]
for i in l:
print(i)
a
9
[1, 2, 3]
('a', 'b')
라고 할 때
l = ['a', 9, [1,2,3],('a','b')]
for i in range(len(l)) :
print(l[i])
0
1
2
3
처럼 range(), len() 함수를 활용, 인덱스로 접근 가능하다.
# 제어문을 여러 개 사용할 경우, 들여쓰기 주의!!
#안쪽 반복문이 실행되고 최상단 1이 반복, 다시 반복,
for i in [1,2,3]:
for j in (10,20):
print(j)
print(i)
10
20
1
10
20
2
10
20
3
#들여쓰기에 따라 출력되는 값이 완전히 달라진다.
for i in [1,2,3]:
for j in (10,20):
print(j)
print(i)
10
1
20
1
10
2
20
2
10
3
20
3
# 요소 값을 아이템 변수로 할당하여 응용가능
l = [[1,2],[3,4],[5,6]]
for i in l: #l 의 인덱스는 총 3개이므로 3번 반복해 요소 i를 출력
print(i)
[1, 2]
[3, 4]
[5, 6]
l = [[1,2],[3,4],[5,6]]
for i, j in l: # 총 3번 반복
print(i+j) # i는 l[0][0], j는 ㅣ[0][1]을 반영
print(i,j)
3
1 2
7
3 4
11
5 6
# 조건문과 함께 복잡한 프로그램 작성 가능
s = "Hello"
cnt = 0
for i in s:
if i == 'e':
print("i is e")#e 가 됐을 때만 출력
cnt += 1
print(cnt)
# e가 나오면 "i is e"를 출력하고 총 반복한 횟수는 몇번인지 cnt로 출력
i is e
5
continue : for문 안의 문장을 수행하는 도중 continue문을 만나면 for문의 처음으로 돌아감
s = "Hello"
cnt = 0
for i in s:
if i == 'e':
print("i is e")#e 가 됐을 때만 출력
continue # 보조 제어문
cnt += 1
print(cnt)
i is e
4
구구단 예시
for i in range(2,10): # ①번 for문
for j in range(1, 10): # ②번 for문
print(i*j, end=" ") #결과값을 출력할 때 다음줄로 넘기지 않기 위해
print('')
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
'AI > StudyNote' 카테고리의 다른 글
Python #리스트 내포 (0) | 2021.08.31 |
---|---|
Python #while (0) | 2021.08.31 |
Python 복습 #조건문 #조건부 표현식 (0) | 2021.08.31 |
Python #불 자료형 #관계 연산자 #논리 연산자 (0) | 2021.08.30 |
Python 복습 #산술 연산자 #문자열 # 리스트 (0) | 2021.08.30 |