iter( list )
반복 가능한 객체 (list 등..) 를 받아서 '이터레이터(Iterator) 객체'로 변환해주는 함수
next 함수로 호출하는 객체
iter( Iterator , {observer} )
next 함수로 불러오는 Iterator 객체의 값을 감시
'{observer}' 에 해당하는 값을 발견 시 next를 종료
next( Iterator , {기본값} )
Iterator 객체의 다음 값을 계속 리턴
리턴할 값이 없는 경우 '{기본값}'을 출력하고 반복 종료
# iter 함수로 iter 객체 생성
iter_x = iter([1,2,3,4,5])
print(list(iter_x))					## result = [1, 2, 3, 4, 5]
print(list(iter_x))					## result = []
									## > 한 번 출력하고 난 뒤에는 남아있는 원소가 없음
# iter(x, observer) 형식
import random 
def func():    
	return random.randint(0, 10) 	##	0 부터 10 까지 랜덤한 정수를 리턴하는 함수
    
iter_y = iter(func, 8)				## func 함수에서 8이 나오면 next 종료
while True:
	try:
    	print(next(iter_y))			## func 함수에서 생성되는 값을 출력
    except:
    	raise
# next(x, deafult) 형식
iter_z = iter([1,2,3,4,5])
iter_num = 1
max_iter = 6
while iter_num <= max_iter:
	print(next(iter_z, 10))			## 더 이상 next로 불러올 값이 없을 때, 10 출력
    iter_num += 1