뜯고 또 뜯어보는 컴퓨터
-
Efficient Python 22. 변수위치 인자(*Args) 사용법뜯고 또 뜯어보는 컴퓨터/파이썬 (Python) 2021. 7. 30. 01:03
파이썬 뿐 아니라 다른 언어에서도 함수의 위치인자(positional argument)를 가변적으로 받을 수 있으면, 함수 호출이 더욱 깔끔해진다.이를 가변인자(varargs)나 스타인자(star args)라고 부르기도 한다. 예를 들어 디버깅정보를 로그로 남기는 함수를 구현해볼때 인자수가 고정돼 있으면 메시지와 같이 list값을 받는 함수가 필요하다. def log(message,values): if not values: print(message) else: values_str = ",".join(str(x) for x in values) print(f'{message}: {values_str}') log("내숫자는",[1,2]) log("안녕",[]) 더보기 내숫자는: 1,2 안녕 이때, 빈 리스트를..
-
Effective Python 21. 클로져란뜯고 또 뜯어보는 컴퓨터/파이썬 (Python) 2021. 7. 30. 00:17
1. 파이썬의 클로저와 변수영역의 이해 - 클로저를 보기 전, 먼저 숫자로 이루어진 List 에서 몇개의 변수(group 데이터)만을 앞으로 오고자 하는 경우를 생각해보자. def sort_priority(values, group): """ values 의 값들 중, group에 표현되어 있는 값들만 정렬해서 앞으로 빼오고 싶다, """ def helper(x): if x in group: return (0,x) else: return (1,x) values.sort(key=helper) numbers = [8,3,1,2,5,4,7,6] group = [2,3,5,7] sort_priority(numbers, group) print(numbers) 더보기 [2, 3, 5, 7, 1, 4, 6, 8] - ..
-
Effective python ch20. None보다는 예외를뜯고 또 뜯어보는 컴퓨터/파이썬 (Python) 2021. 7. 29. 23:25
다음과 같은 예가 있다고 해보자. ZeroDivisionError가 발생했으므로, 0 보다는 None을 반환하는 것이 자연스러워보인다. 하지만 반환한 결과( == None 을 의미) 를 사용하는 if 문등의 조건에서 평가할때, None이 문제를 야기할 수 있으므로, 이를 살펴보자 (0이나 ""가 문제가 될 수 있음) In [1]: def careful_device(a,b): try: return a/b except ZeroDivisionError: return None In [2]: # 적절히 해석하였을시. x, y = 1, 0 result = careful_device(x,y) if result is None: print("잘못된 입력") 잘못된 입력 In [3]: # 잘못 사용된 예시. x, y = ..