#!/usr/bin/env python # coding: utf-8 # # 19. 함수가 여러 값을 반환하는 경우 절대로 네 값 이상을 언패킹하지 말라 # In[1]: def get_stats(numbers): minimum = min(numbers) maximum = max(numbers) return minimum, maximum # In[2]: length = [63, 73, 72, 60, 67, 66, 71, 61, 72, 70] # In[4]: minimum, maximum = get_stats(length) # In[5]: minimum # In[6]: maximum # In[7]: def get_avg_ratio(numbers): avg = sum(numbers) / len(numbers) scaled = [x / avg for x in numbers] scaled.sort(reverse=True) return scaled # In[9]: longest, *middle, shortest = get_avg_ratio(length) # In[10]: longest # In[11]: middle # In[12]: shortest # In[13]: def get_stats(numbers): minimum = min(numbers) maximum = max(numbers) count = len(numbers) average = sum(numbers) / count sorted_numbers = sorted(numbers) middle = count // 2 if count % 2 == 0: lower = sorted_numbers[middle - 1] upper = sorted_numbers[middle] median = (lower + upper) / 2 else: median = sorted_numbers[middle] return minimum, maximum, average, median, count # In[15]: minimum, maximum, average, median, count = get_stats(length) # In[16]: minimum # In[17]: maximum # In[18]: average # In[19]: median # In[20]: count # ## 기억해야 할 내용 # - 함수가 여러 값을 반환하기 위해 값들을 튜플에 넣어서 반환하고, 호출하는 쪽에서는 파이썬 언패킹 구문을 쓸 수 있다. # - 함수가 반환한 여러 값을, 모든 값을 처리하는 별표 식을 사용해 언패킹할 수도 있다. # - 언패킹 구문에 변수가 네개 이상 나오면 실수하기 쉬우므로 변수를 네 개 이상 사용하면 안 된다. 대식 작은 클래스를 반환하거나 namedtuple 인스턴스를 반환하라