본문 바로가기
파이썬

파이썬(python) 강의 6장 - 컨테이너와 반복문 -

by ChocoPeanut 2017. 5. 19.

파이썬(python) 강의 6

- 컨테이너와 반복문 -

 

앞선 장에서 변수에 대해서 알아보았다. 또한 다양한 데이터의 형태가 존재한다는 것도 알았다. 이번 장에는 컨테이너에 대해 알아 볼 것이다. 컨테이너는 말 그대로 무언가를 담고 있다는 것을 의미한다. 숫자나 문자열 하나만을 가지고 있는 것이 아니라 컨테이너는 하나 이상의 숫자나 문자열을 가지고 있는 묶음이라고 할 수 있다. 컨테이너의 종류에도 리스트(list), 튜플(tuple) 등등이 있는데 여기서는 리스트에 중점을 두겠다. type의 형태를 살펴보면 list로 나타나게 된다. 리스트에는 숫자와 문자열들이 다 같이 올 수 있고 각 요소들을 원소라고 한다. 원소들은 첫 번째부터 0이라는 숫자를 1씩 더해가면서 가지게 된다. 따라서 두 번째에 오는 원소는 1이라는 값을 가지는데 이를 색인이라고 한다.


 

반복문을 보기 전에 우선 아래의 코드를 살펴보자. Hello World를 출력하는데 뒤에 9의 배수인 숫자를 같이 출력하고자 한다. 하지만 지금은 10개의 요소만 출력하려고 하는데 만약 항목이 천개 만개가 넘어가면 어떻게 될까? print 구문을 그만큼 작성한다면 다른 코드를 작성할 공간도 없을 만큼 길게 작성해야할 것이다. 따라서 코드를 작성할 때에는 중복을 없애주는 것이 매우 중요하다. 이를 방지하기 위해 반복문이 존재한다.

 


while은 반복문을 사용하기 위한 구문이다. while 구문을 사용할 경우 조건이 참이 될 때에만 밑에 나오는 코드를 반복해서 실행하게 된다. 따라서 True로 오게 되면 프로그램을 강제로 종료하지 않으면 계속해서 실행을 하게 된다. 반대로 False로 되어 있으면 출력이 되지 않게 된다.


 

while문을 사용할 때 I라는 변수를 사용할 수 있다. I라는 값은 반복의 수를 제어하는 값으로 반복을 언제까지 할 것인가를 정할 수 있는 값이다. 예시를 보게 되면 I 값을 0으로 시작해서 I3보다 작을 때에만 코드를 반복하도록 하는 구문을 작성했다. 이 때 while 내의 코드 안에 I = I + 1 이라는 구문을 사용하여 코드가 실행될 때 마다 카운트를 늘려 I3번 반복할 수 있는 환경을 만들어주게 된다. 이렇게 되면 Hello world라는 구문은 3번 출력되게 되고 프로그램이 종료되게 된다.


 

그러면 앞에서 10개의 Hello world9의 배수인 숫자를 같이 출력하는 예제를 반복문인 while을 통해서 만들어 보도록 하자. 10개의 반복되는 코드를 실행시키므로 while을 통해 10번 반복을 시킬 것이다. 여기에 9의 배수인 숫자를 출력해야하는데 이 부분에서 I를 이용할 수 있다. I를 이용하여 I 값에 9를 곱하게 되면 I 값이 증가함에 따라 9의 배수의 형태로 나타나게 된다. 하지만 여기서 주의해야할 사항은 I 의 값은 숫자이기 때문에 문자열과 동시에 출력을 할 경우 에러 메시지를 나타나게 할 수 있다. 따라서 여기에 9의 배수의 값을 문자열로 바꾸어 주는 str 작업이 필요하게 된다.


 

while 구문을 사용할 때 우리는 중간의 특정 값만을 출력하거나 빼고 생각하고 싶을 수 있다. 이럴 때에는 while 구문과 조건문인 if 구문을 같이 사용하게 되면 이런 상황을 만들 수 있다. 만약 0에서 10까지 출력하는 구문에서 4가 나타났을 때 반복문을 중단하고 싶다고 하면 break라는 명령어를 사용하면 된다. break는 반복문을 종료 시켜주는 역할을 수행하게 된다.


 

while문을 사용할 때 I의 값을 제어하는 구문으로 숫자를 사용할 수도 있지만 만약 컨테이너가 범위로 오는 경우 len을 사용하여 유동적인 크기를 지정할 수 있게 된다. 만약 컨테이너에 요소가 3개가 있어서 while문을 반복할 때 3으로 작성하였는데 나중에 컨테이너를 수정하게 되어 요소 하나가 빠져 2개가 된다면 while문들도 다 고쳐 주어야 한다. 만약 그렇지 않으면 범위를 벗어났다는 에러 메시지를 방출하게 된다. 따라서 이를 방지하기 위해 len을 사용하면 컨테이너의 크기가 변화하여도 그에 맞는 값을 가지게 된다.


 

반복문의 종류에는 while문 말고 for문도 존재한다. for 문의 경우에는 앞에서 말한 컨테이너를 대상으로 사용하게 된다. for문은 forin으로 구성되어 있는데 for 뒤에는 요소가 in 뒤에는 컨테이너가 오게 된다. for 뒤에 오는 요소는 컨테이너의 요소를 하나씩 가지게 되는데 이를 반복하여 진행하게 된다.


 

for 문을 사용할 때 컨테이너뿐만 아니라 range라는 값을 사용할 수도 있다. range를 사용하게 되면 range 안에 있는 범위에 맞추어 반복을 진행하게 된다.


 

for 구문을 통해 로그인을 하는 앞의 예시를 가지고 와서 설명을 해보겠다. 컨테이너에 대한 개념도 사용하고 이를 통한 for 구문을 이용하여 코드를 단순하고 알기 쉽게 만들어주는 것이다. input으로 입력받은 변수를 사용하는 부분은 동일하다. 하지만 각각의 로그인을 위한 member를 저장하는 컨테이너를 만들게 된다. 컨테이너에 각각의 멤버가 들어가 있게 되고 이 컨테이너 구문을 반복하여 input으로 들어온 값이랑 비교를 하는 것이다. 만약 같은 멤버가 존재하면 Hello와 함께 멤버 이름을 출력시켜준다. 만약 그렇지 않다면 Who are you를 출력하게 된다.