파이썬 중급5 (for - 반복문)
파이썬 for문
파이썬 for문
앞에서 배운 while문과 동일하게 for문도 반복문입니다.
하지만 다른 점은 파이썬의 for문은 시퀀스 객체나
이터레이션 가능한 객체를 넣고 객체를 순차적으로 순회합니다.
무슨 말인지 이해가 힘들 수 있는데 쉽게 설명하자면
문자열, 튜플, 리스트와 같은 시퀀스 자료형을 넣고
반복 가능한 횟수만큼 반복합니다.
while문과 다른점은 while문은 무한루프가 가능하지만
for문은 무한 루프가 불가능합니다.
for문의 선언법
for문의 기본형은 다음과 같습니다.
1
2
|
for 변수 in 시퀀스형 객체:
코드
|
cs |
그럼 오늘도 우리가 냉장고에 음식을 넣어뒀고
냉장고에 있는 음식들을 꺼내서 확인하고자 할 때라고 가정해 봅시다.
1
2
3
|
fridge = ['사과','김치','고기','계란']
for i in fridge:
print("냉장고에 있는 음식 : {0}".format(i))
|
cs |
시퀀스형 객체에 있는 요소를 i로 옮겨 담은 뒤
실행할 코드가 끝나면 i에 다음 요소를 옮겨 담습니다.
시퀀스 객체가 끝날 때까지 반복합니다.
for문의 활용
파이썬에는 range라는 함수가 있습니다.
함수의 기본형은 아래와 동일합니다.
1
2
|
range(시작숫자,종료숫자,step) #기본적으로 시작숫자와 step는 생략 가능합니다.
range(종료숫자) #0~종료 숫자까지의 연속된 숫자를 만듭니다.
|
cs |
"Hello World"를 100번 출력하는 프로그램을 range로 가볍게 만들어 보겠습니다.
1
2
|
for i in range(100):#0~99까지 반복합니다.
print("Hello World {0}".format(i))
|
cs |
출력 화면은 생략하겠습니다.
우리가 만든 구구단을 출력하는 프로그램을
for문과 range 그리고 while문을 사용한다면 아래와 같이 구현 가능합니다.
1
2
3
4
5
6
7
8
9
10
|
a = 2 #2단부터 시작하기 때문에 초기 값을 2로 잡아줍니다.
gugu_class = [] #구구단을 담을 리스트를 선언합니다.
while a<10: #9단전까지 만들기 때문에 a는 10전까지 반복합니다.
temp_list = [str(a)+"단"] #temp_list라는 변수에 str()이란 문자열로 변환해주는 함수를 이용해 a를 문자열로 변환해 a단이라는걸 명시해줍니다.
for i in range(1,10): #range를 이용해 1부터 10전까지 반복합니다.
temp_list.append(a*i) #temp_list에 a*i한 값을 넣어줍니다.
a+=1 #위 for문이 끝나면 a에 1을 더해 줍니다.
gugu_class.append(temp_list) #gugu_class에 temp_list를 넣어줍니다. a가 반복할때마다 temp_list는 초기화합니다.
for i in gugu_class: #gugu_class에 있는 리스트를 반복합니다.
print(i) #하나씩 꺼내 출력합니다.
|
cs |
위에서 str()함수는 다른 형의 타입을 문자열로 변환시켜줍니다.
그래서 a+"단"을 하면 오류가 발생하지만
a를 문자열로 바꿔서 더해준다면 오류가 발생하지 않습니다.
위의 예제가 충분히 어려우니 몇 번이고 연습하시고 숙지해주시면 감사하겠습니다.
실제로 파이썬의 for문에서 range함수는 빠질 수 없는 함수입니다.
이해가 어려우신 분들은 연습하시는 걸 추천드립니다.
요약
1. 파이썬의 for문은 시퀀스 객체를 반복하여 뽑아낸다.
2.str() 함수는 다른 타입의 객체를 문자열로 바꿔준다.
3.range함수는 반복하여 숫자를 배출합니다.
숙제
1.range함수를 이용해 1부터 100까지 2로 나눠서 나머지가 1인 것들만 출력해 주세요.
2.range함수를 이용해서 1부터 100까지 소수를 구해주세요.
다음 시간에는 break와 continue 그리고 enumerate를 배워보겠습니다.