나는 톡톡레몬

반응형

오늘은 for 문을 통해 반복하는 작업을 하는 코딩을 공부해보고자 합니다. 코딩을 하다보면 여러가지 동일 패턴을 반복해야할 경우가 있을 수 있습니다. 가령 1부터 10까지 더해라! 와 같은 경우죠. 작업량이 적다면 손수 하나하나 하겠지만, 1부터 1000까지 더하는것을 하나하나 하기엔 너무 비효율적입니다. 이럴때 for 문을 사용하여 컴퓨터가 원하는 범위 동안 동일 작업을 반복하게끔 만들어 줄 수 있습니다.

 

for 반복문 & 리스트형 자료

 

 

for문 & 리스트형 자료 구성은 다음과 같습니다. [ for 변수 in 리스트형 자료 : ]  해석해보자면 '문자형이나 리스트형 자료의 index에 따라 원소를 변수에 대입하라' 라는 의미입니다.

 

예시를 살펴보죠. 8행에서 리스트 [1,2,3] 이 있을때 변수 i 에 원소 1,2,3 을 순차적으로 넣으라고 하고 있습니다. i 에 1이 대입되는 순간 9행을 실행하게 됩니다. 기존값이 0인 a에다가 현재의 i 값을 더하는 명령이죠. 그럼 0+1 이 될테니 a 값은 1로 새로 등록이 됩니다. 아직 for문 반복이 끝나려면 원소 2,3이 순차적으로 대입되어야하니 다시 8행으로 복귀하여 위와 같은 패턴을 반복합니다. 결론적으로 a 는 기존값 0에 원소들이 더해지면서 최종값이 6으로 변환됩니다.

 

for 문에는 몇가지 유의할 점이 있는데, 첫째로 if 문과 마찬가지로 for문도 for 문 아래 속하는 명령문들은 들여쓰기를 해줘야합니다. 그리고 for 문 작성이 끝나면 ' : ' 을 문장 마지막에 붙여줘야합니다. 마지막으로 8행과 같이 for 문 안에서 사용된 변수는 사전에 정의해주지 않아도 됩니다.   

 

for 반복문 & 문자형 자료

 

 

for문 & 문자형 자료 구성은 다음과 같습니다. [ for 변수 in 문자형 자료 : ] 기본적으로 리스트형과 동일하고, 차이점은 문자형 자료의 원소 하나하나가 Sequence로 인식된다는 점입니다.

 

예시를 해석해보자면 21행에 school 이라는 문자형 자료가 for문에 사용되고 있습니다. 그리고 school은 알파벳 6개로 이뤄져있죠. 그럼 파이썬은 'for 문 이하의 명령어를 문자형 자료 알파벳 숫자만큼 실행하라' 라고 인식합니다. b=b+1 이라는 for 문 하위 명령을 6번 실행하게 되죠. b의 기존값이 0이었고 +1 해주는 작업이 6번 실행될테니 b의 최종값은 6이 되게 됩니다.

 

이렇듯 for 문에서 문자형 자료를 사용하게 되면 문자형 자료를 반복작업의 횟수로 인식하게 됩니다.

 

range 함수

 

 

앞서 for 문의 반복횟수를 구성할 경우, 리스트형 자료와 문자형 자료로 구성함을 알아보았습니다. 그런데 매번 이렇게 횟수 지정을 위해 원소들을 나열해 줘야할까요? 여간 불편할 것입니다. 

 

range 함수는 연속된 숫자를 만들어 그런 수고로움을 덜어주는 함수입니다. 형태는 range(시작값,종료값) 을 갖습니다. 이때 시작값은 이상의 의미를 갖고, 종료값은 파이썬의 다른 함수와 마찬가지로 미만의 의미를 갖습니다.

 

예시로 바로 알아보시죠. 28행의 range(1,11) 이라고 코딩해 줄 시, '1 이상 11 미만의 연속된 숫자'를 구성해줍니다. 즉 1부터 10까지 10개 숫자를 나열해주죠. 29행처럼 시작값 없이 종료값만 지정해 줄 수도 있습니다. 이 경우, 시작값은 자동으로 0부터 시작하게 됩니다.

 

29행 예시를 잘 보시면, range(10) 에 해당되는 숫자의 개수는 10개 입니다. 즉 괄호안의 숫자가 우리가 만들고자 하는 숫자의 갯수가 됨을 알 수 있습니다.

 

for문 & range 함수

 

 

range 함수를 배웠으니 for 문과 콜라보를 해봐야합니다. 바로 예시 풀이를 가봅시다. 36행의 의미를 살펴보면 '2 이상 7 미만의 연속된 수를 순차적으로 k 값에 넣어라. 그리고 그동안 c list 에 append 함수를 통해 k 값을 추가해라' 라는 의미가 되겠습니다.

 

range(2,7) 일 경우 2,3,4,5,6 의 연속된 숫자가 생성이 되고 k 값에 해당 숫자들이 순차적으로 입력 될 것입니다. 그때마다 리스트 c 에는 [1,2] , [1,2,3] ~ 과 같이 k 값이 하나씩 추가가 됩니다. 마지막 6까지 추가가 되고 나면 반복범위가 끝나기 때문에 리스트 c 최종값은 [1,2,3,4,5,6] 이 되게 됩니다.

 

 

이상 for 문과 range 함수에 대해 알아보았습니다. 파이썬 독학에 도움되셨으면 좋겠습니다. ^-^

반응형

이 글을 공유합시다

facebook twitter googleplus kakaostory naver