16.2 반복문에서 변수의 변화 알아보기

앞에서 단순히 'Hello, world!' 문자열만 여러 번 출력했는데 이번에는 range에서 꺼낸 숫자를 눈으로 확인해보겠습니다.

>>> for i in range(100):
...     print('Hello, world!', i)
...
Hello, world! 0
Hello, world! 1
Hello, world! 2
... (생략)
Hello, world! 98
Hello, world! 99

'Hello, world!'에 0부터 99까지 출력되었죠? 즉, range에서 꺼낸 숫자는 변수 i에 저장되며 반복할 코드에서 사용할 수 있습니다.

참고 | 반복문의 변수 i

변수 i를 루프 인덱스라고도 부르며 index의 첫 머리글자를 따서 i를 주로 사용합니다

참고 | range와 객체

파이썬 2.7과 파이썬 3에서 range는 결과가 조금 다릅니다. 파이썬 2.7에서는 range를 사용하면 실제로 연속된 숫자가 들어있는 리스트를 만들어내지만 파이썬 3에서는 range 객체(반복 가능 객체)를 만들어냅니다.

파이썬 2.7

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

파이썬 3

>>> range(10)
range(0, 10)

파이썬 2.7의 range는 리스트를 만들어내므로 아주 큰 숫자를 지정하면 메모리를 많이 사용하게 됩니다. 따라서 파이썬 2.7에서는 리스트 대신 객체를 생성할 때는 xrange를 사용합니다. 특히 파이썬 3에서는 기본적으로 range가 객체를 생성하는 방식으로 바뀌었습니다.