이번 강에서는 반복문에 대해서 다뤄보겠습니다.
1. 반복문이란 무엇인가
여러분에게 종이에 "나는 프로그래머입니다."를 100번 쓰라고 하면 어떨 거 같나요??
100번이야 누군가에겐 쉬울 수 있고, 누군가는 귀찮을 수 있습니다.
전 학창 시절에 학원에서 영어단어 100번 쓰기 숙제가 가장 귀찮았거든요.
그럼 숫자를 더 높여서 1000번이면 어떨 거 같습니까??? 더 높여서 100000번이면???
아마 1000번이 넘어가는 순간 대부분의 사람들이 포기할 것입니다.
그런데 종이에 원하는 단어를 대필해주는 기계가 있다고 가정합시다.
이 기계는 원하는 숫자를 입력하고 버튼을 누르면 그 숫자만큼 단어를 써주는 기계입니다.
이 기계를 가지고 "나는 프로그래머입니다."를 100000번 쓰라고 하면 어떨 거 같나요??
100000을 입력하고 버튼만 누르면 기계가 알아서 해주니까 쉽게 하실 수 있을 겁니다..
이런 기계가 있다면 100000보다 더 큰 숫자를 요구해도 아무 부담 없이 수행할 수 있을 겁니다.
반복문은 이러한 기계처럼 반복적인 일을 자동으로 해주는 역할을 합니다.
반복문의 정의는 어떠한 코드를 여러 번 반복하는 함수로, 대표적으로 for 함수와 while 함수가 있습니다.
이번 강에서는 for 함수를 소개해드리겠습니다.
2. for 함수
for 함수는 가장 대표적인 반복문 중 하나로, 다음의 구조를 가지고 있습니다.
for 함수의 구조
for 반복변수 in 반복할 것:
반복할 코드
여기서 중요한 것은 for 함수에는 반복변수가 필요하다는 것입니다.
for 함수는 반복변수의 값을 변화시키며 코드를 반복하는 형태이기 때문입니다.
많은 코드에서 반복변수로 i를 사용합니다.
또한, 코드의 범위를 들여쓰기로 구분하기 때문에 for 함수 영역에 들어갈 코드는 꼭 들여쓰기를 반드시 해줘야 합니다.
반복할 것에는 범위, 리스트, 문자열, 딕셔너리가 있습니다.
범위를 이용해 반복할 때는 위와 같이 range(숫자)를 사용합니다.
range(숫자)은 반복 자료형으로 0부터 숫자 n-1까지의 범위를 의미합니다.
i를 보시면 0부터 4까지(range의 범위) 5번 반복하시는 걸 확인하실 수 있습니다.
반복코드의 흐름은 다음과 같습니다.
1. i에 0을 대입한다.
2. i의 값이 범위 안에 있는지 확인한다.
3. 범위 안에 있으면 코드를 실행하고 i에 1을 더해서 2번으로 돌아간다.
4. i의 값이 범위 안에 있지 않으면 반복을 종료한다.
즉, for i in range(숫자n)은 0부터 숫자 n-1까지 i을 1씩 증가시키며 코드를 반복하는 겁니다.
참고로 특정한 수 a부터 b까지의 범위는 range(a, b+1)로 표현합니다.
리스트를 이용한 반복은 반복변수에 0번 요소부터 대입해 코드를 실행하고 인덱스를 늘려가며 반복하는 형식입니다.
반복코드의 흐름은 다음과 같습니다.
1. i에 0번 요소를 대입한다.
2. 코드를 실행한다.
3. 다음 인덱스의 요소를 i에 대입해서 2번으로 이동한다.
4. 리스트의 범위를 넘어서면 반복을 종료한다.
문자열을 이용한 반복문은 아래와 같이 문자열을 쓰면 반복변수 i에 문자값이 하나씩 대입되는 방식으로 반복됩니다.
반복코드의 흐름은 다음과 같습니다.
1. i에 문자열 첫 번째 문자를 대입한다.
2. 코드를 실행한다.
3. 다음 문자를 i에 대입해서 2번으로 이동한다.
4. 문자열의 범위를 넘어서면 반복을 종료한다.
딕셔너리는 아직 배우지 못한 개념이므로 딕셔너리를 이용한 반복은 다음에 소개해드리겠습니다.
3. 중첩 for 함수
이 장에서는 for 함수를 두 번 중첩하는 방법을 알아보겠습니다.
방법은 간단합니다. for 함수 안에 for 함수를 쓰면 됩니다.
중첩 for 함수를 설명할 때 여러 서적에서 사용하는 예시가 구구단이므로 저도 구구단을 중첩 for 함수 실습으로 보여드리겠습니다.
이렇게 for 함수 안에 for 함수를 넣음으로써 구구단을 구현할 수 있습니다.
동작 과정을 간단하게 설명해드리면
1. i에 2를 대입한다.
2. j에 2를 대입한다.
3. print(str(i) + '*' + str(j) + '=' + str(i*j))를 실행한다.
4. j의 값을 1 증가시키고 범위 내에 있으면 3으로 돌아가고, 범위를 넘어가면 print("-------------")를 출력하고 i의 값을 1 증가시켜 2로 돌아간다.
5. i의 값이 범위를 넘어서면 반복을 종료한다.
이런 과정으로 동작하게 됩니다.
직접 코드를 작성하시고 하나씩 차근차근 과정을 생각해보시면 쉽게 이해되실 겁니다.
정리
- 반복문 : 특정 코드를 반복적으로 실행하는 함수
- for 함수의 사용 종류
- 범위를 이용한 반복 [for i in range(5)]
- 리스트를 이용한 반복 [for i in list]
- 문자열을 이용한 반복 [for i in 'Saver']
- 딕셔너리를 이용한 반복
- 중첩 for 함수 : for 함수 안에 for 함수를 쓰는 것
강의가 유익하셨거나 마음에 드셨으면 구독과 좋아요, 댓글 부탁드립니다.
궁금하신 점이나 질문은 댓글 남겨주시기 바랍니다.
'파이썬' 카테고리의 다른 글
해커맨 파이썬 강의 18강_딕셔너리란 무엇인가 (2) | 2019.11.25 |
---|---|
해커맨 파이썬 강의 16강_ 리스트와 관련된 함수들 (0) | 2019.11.07 |
해커맨 파이썬 강의 15강_ 리스트란 무엇인가 (0) | 2019.11.06 |
해커맨 파이썬 강의 14강_ 조건문이란 무엇인가 (0) | 2019.11.03 |
해커맨 파이썬 강의 13강_ 연산자란 무엇인가(part3) (0) | 2019.10.28 |