range range는 어떤 정수 집합을 반복해야 하는 과정이 필요할 때 유용하다. from random import randint random_bits = 0 for i in range(32): if randint(0, 1): random_bits |= 1 > 0b11001000000001100000010110010 위 코드는 실행할 때 마다 랜덤한 값이 나온다. 9번째 줄에 있는 randint 덕분에 random_bits |= 1 > 1: 빨강 2: 파랑 3: 노랑 4: 초록 허나 위 코드는 조금은 투박해 보인다. 몇 번째 원소를 접근 중인지 알기 위해 리스트의 크기를 알아야 하고, 인덱싱을 사용해 배열 원소에 접근해야 한다. 코드가 짧으니 알아보기 쉽겠지만 단계가 많아 나중에 코드가 길어지면 읽기 ..
반복형(iterable)과 반복자(Iterator)은 다르다! 반복형(iterable)이란? 말 그대로 '반복 가능한 객체'를 말한다. 특징으로 원소를 여러 개 가진 정적인 객체를 만든다. 반복자(Iterator)이란? 반복자 객체는 값을 차례대로 꺼낼 수 있는 객체를 말한다. 동적 처리를 하기 위해 별도의 핸들러를 만든 후 내부의 원소를 하나씩 꺼내 처리하는 기능을 제공한다. 사실 이렇게 봐도 다른 점이 잘 보이지 않는다. 예제로 보자. 우선 Iterable인지 Iterator인지 구별하기 위해 collections 모듈을 import한 후 상속 관계를 파악하는 issubclass 함수를 이용해 Iterable 클래스를 상속받는지, Iterator 클래스를 상속받는지 알아보자. import collec..