epsilon
을 포함한 연산에 주의할 것float data를 표현할 때 이진법을 사용하기 때문에 반드시 오차가 발생함
즉, 0.1+0.1 != 0.2 인 현상이 발생함이 부분을 항상 생각할 것
list, dictionary, set
mutable 객체의 수정은 어떻게 동작할까?
my_list = [1, 2, 3, 4, 5]
my_list[4] = 6
이렇게 값을 수정하면 my_list가 참조하고 있던 값이 수정됨
tuple, int, float, string
a = 4
b = a
b += 2
이렇게 하면 처음 b를 정의할 때는 a가 참조하고 있던 위치를 참조하지만
4(int)는 immutable object이기 때문에 수정하지 못하고 새로운 참조 위치를 만들어서
다른 값(6)을 참조함
lambda expression
익명함수(anonymous function) : 이름 없이 한번만 사용하고 말거나 다른 함수의 인수로 사용하는 함수
람다식의 활용>>
# 1. 변수로 참조하기 add = lambda x, y : x + y print(add(4,5)) # 2. 인수로 람다식 넘기기 num = [1, 2, 3] square = list(map(lambda x : x**2, num)) print(square)
코드 실행 과정이 함수 끝까지 도달하기 전에 반환하는 기법
def total_price(quantity, price):
total = quantity * price
if total > 100:
return total * 0.9 # 조기 반환
return total
본격 로직을 진행하기 전에 예외처리 코드를 추가하는 기법
def calculate_average(numbers):
if numbers is None:
return None
if not isinstance(numbers, list):
return None
if len(numbers) == 0:
return None
total = sum(numbers)
avg = total / len(numbers)
return avg
2개 이상의 함수를 활용하여 추가로 함수를 만드는 기법
보통 합성함수는 람다식을 활용함
def add_three(x):
return x + 3
def square(x):
return x * x
composed_function = lambda x: square(add_three(x))
print(composed_function(3))