에르노트

파이썬 시퀀스 & for문 본문

Dev/Python

파이썬 시퀀스 & for문

두콩 2018. 4. 13. 22:27

파이썬 시퀀스, FOR문

숫자 형식에 int, float 등이 있었다면 시퀀스 형식에는 str과 더불어 list가 있다. 시퀀스 형식을 다룰 때는 [ ] 연산자를 사용한다. 우선 기존에 익숙한 str 형식으로 시험을 해보자면, msg = 'hello' 라는 할당문을 적은 후, msg[3]을 치면 'l'이라는 결과를 볼 수 있다. 이 'l'의 의미는 바로 'hello'라는 문자열에서 3번째 문자에 해당하는 것을 출력한 것이다. 

 

>>> msg = 'hello'
>>> msg[3]
'l'

 

 

정리하면, [ ] 연산자는 시퀀스의 내용물 중 하나를 꺼내기 위해서 사용하는 것이다. 여기서 [ ]안에 들어있던 3을 index 값이라고 한다. 시퀀스 형식에서 정확히 한 칸만을 골라서 쓰고 싶을 때, 그 칸에 해당하는 index값을 말하자면 위의 예시에서는 3인 것이다. 에 대해서 부연하면, '칸'은 특정 형식 값 하나를 담기 위한 메모리 공간이다. 앞서 살펴본 변수는 값 하나를 담을 수 있는 친구.. 정도로 이해했었다. 여기서 더 정확히 짚고넘어가자면, 변수는 위치 값 하나를 담을 수 있는 친구이다! 

 

[ ] 연산자가 시퀀스에서 특정한 하나를 꺼내고 싶을 때 쓴다면, for문은 각각을(each) 처음부터 끝까지 한번씩 꺼내쓰고 싶을 때 쓰인다. 그러므로 for문 역시 반복문 중의 하나로, for문을 이용하면 상황에 따라 while문보다 더 간결하게 소기의 목적을 달성할 수 있다. 한글자씩 출력되는 문자를 구현하고 싶으면 time함수와 for문을 적절히 응용하여 만들 수 있다.

import time

msg = 'I will find you'

for c in msg:
    print(c)
    time.sleep(0.1)

출력 결과

이렇게 적으면 msg라는 str형식(시퀀스 형식)에서 첫 문자를 꺼내서 출력하고(print), time.sleep까지 실행한 후 다음 문자에 대해 동일한 작업을 반복한다는 것이다. 그래서 우리 눈으로 보았을 때는 한글자씩 끊어서 출력되는 것으로 보인다.

 

 

요약하면, for문은 어떤 컬렉션에서 값을 하나씩 가져와서 사용하고자 할 때 쓰는 문장이다. 꺼내온 값은 지정해둔 변수에 하나씩 담긴다(여기서는 c). 즉, for문의 내용물은 변수에 값을 하나씩 담을때마다 한 번씩 실행된다. 만약 컬렉션에 값이 0개라면 0번 실행될 것이고, 그럼에도 불구하고 반복은 인정된다.

 

 

글의 서두에서 시퀀스 형식에는 str과 더불어 list가 있다고 소개했었다. str이 문자들이 나열된 시퀀스 형식이라면 list는 위치 값들이 나열된 시퀀스 형식이다. 즉, 각 칸을 마치 변수처럼 사용할 수 있고, 할당문을 이용하면 그 안에 들어있는 값도 언제든지 바꿀 수가 있다.그래서 여러 값들을 한번에 다루어야하는 상황이라면 list 형식을 이용하는 것이 코드의 간결성, 즉 프로그램의 효율을 높이는 길이 된다.

 

 

Comments