1. 학습
  2. /
  3. 강의
  4. /
  5. Python 도구 상자

Connected

연습 문제

이터러블 순회하기 (2)

이번 장에서 배운 중요한 점 중 하나는 모든 이터러블이 실제 리스트는 아니라는 것입니다. 예를 들어 문자열과 range() 함수가 있었죠. 이 연습 문제에서는 range() 함수에 집중해 보겠습니다.

range()는 for 루프에서 마치 리스트처럼 순회할 수 있습니다:

for i in range(5):
    print(i)

range()는 실제 리스트를 만들지 않고, 대신 지정한 한계(이 예시에서는 4)에 도달할 때까지 값을 생성하는 이터레이터를 가진 range 객체를 만든다는 점을 떠올려 보세요. 만약 range()가 실제 리스트를 만든다면, 인수로 \(10^{100}\) 같은 값을 주었을 때는 동작하지 않을 수 있습니다. 이렇게 큰 숫자는 일반 컴퓨터의 메모리를 초과할 수 있기 때문이죠. $10^{100}$은 1 뒤에 0이 백 개 붙는 수로, Googol이라고 부릅니다. 정말 어마어마한 숫자예요!

이번 연습의 목표는 range()에 $10^{100}$을 넘겨도 실제 리스트를 미리 만들지 않는다는 것을 확인하는 것입니다.

지침

100 XP
  • iter() 함수를 사용해 range(3)에 대한 이터레이터 객체 small_value를 만드세요.
  • for 루프를 사용해 range(3)을 순회하면서, 반복할 때마다 값을 출력하세요. 반복 변수는 num을 사용하세요.
  • range(10 ** 100)에 대한 이터레이터 객체 googol을 만드세요.