Practice 2 : 함수 1¶
abs()
직접 구현하기¶
절댓값은 숫자형 자료(int, float)가 들어오면 절댓값을 반환하고, 복소수형 자료(complex)가 들어오면 해당하는 자료의 크기를 반환합니다.
파이썬 내장 함수
abs()
를 직접 구현한my_abs()
를 작성하시오.
공식문서¶
abs(x)
: 숫자의 절댓값을 돌려줍니다. 인자는 정수 또는 실수입니다. 인자가 복소수면 크기가 반환됩니다.
복소수 크기 구하는법¶
절댓값¶
실수의 절댓값은 부호를 무시한, 음이 아닌 해당 값입니다. 실수 값 a의 경우, 절댓값은 다음과 같습니다.
a가 0보다 크거나 같은 경우 a
a가 0보다 작은 경우 -a
abs(-0)
은 0을 반환합니다.
복소수 크기¶
복소수 크기 (또는 절댓값)는 복소 평면에 플로팅된 원점에서 복소수 값 까지의 벡터 길이입니다. 복소수 값의 경우 \(|a + bi|\)는 \(\sqrt{a^2 + b^2}\)으로 정의됩니다.
예시)
my_abs(3+4j) #=> 5.0
my_abs(-0.0) #=> 0.0
my_abs(-5) #=> 5
# 아래에 코드를 작성하시오.
def my_abs(x):
if type(x) == complex:
return (x.real**2 + x.imag**2) ** (1/2)
elif x <= 0:
return -x
else:
return x
# 아래의 코드를 실행하여 출력된 결과를 확인하시오.
print(my_abs(3+4j))
print(my_abs(-0.0))
print(my_abs(-5))
print(abs(3+4j), abs(-0.0), abs(-5))
5.0
0.0
5
5.0 0.0 5
all()
직접 구현하기¶
all()
은 인자로 받는 iterable(range, list)의 모든 요소가 참이거나 비어있으면 True를 반환합니다.파이썬 내장 함수
all()
을 직접 구현한my_all()
을 작성하시오.
예시)
my_all([]) #=> True
my_all([1, 2, 5, '6']) #=> True
my_all([[], 2, 5, '6']) #=> False
# 아래에 코드를 작성하시오.
def my_all(elements):
for element in elements:
if not element:
return False
return True
# 다음 코드를 다이어트 해봅시다.
def my_all(elements):
# 요소가 있다면
if elements:
# 모든 요소에 대하여
for element in elements:
# 하나라도 bool(요소)의 결과가 False라면, False를 리턴
if bool(element):
continue
else:
return False
else:
return True
# 요소가 없다면, True를 리턴
else:
return True
# Short Ver.
def my_all(elements):
for element in elements:
if not bool(element):
return False
return True
# 아래의 코드를 실행하여 출력된 결과를 확인하시오.
print(my_all([]))
print(my_all([1, 2, 5, '6']))
print(my_all([[], 2, 5, '6']))
print(all([]), all([1, 2, 5, '6']), all([[], 2, 5, '6']))
True
True
False
True True False
any()
직접 구현하기¶
any()
는 인자로 받는 iterable(range, list)의 요소 중 하나라도 참이면 True를 반환하고, 비어있으면 False를 반환합니다.파이썬 내장 함수
any()
을 직접 구현한my_any()
함수를 작성하시오.
예시)
my_any([1, 2, 5, '6']) #=> True
my_any([[], 2, 5, '6']) #=> True
my_any([0]) #=> False
# 아래에 코드를 작성하시오.
def my_any(elements):
for element in elements:
if element:
return True
return False
print(my_any([1, 2, 5, '6']))
print(my_any([[], 2, 5, '6']))
print(my_any([0]))
print(any([1, 2, 5, '6']), any([[], 2, 5, '6']), any([0])) # any[0] 오타
True
True
False
True True False