이번에는 알고리즘 문제를 푸는데 많이 사용하지는 않았지만,
한두 번은 사용해야 했던 파이썬 내장 함수인 abs 내장 함수에 대해서 포스팅해보겠습니다.
밑의 링크들은 백준에 있는 문제를 풀면서 abs 내장 함수를 사용해서 푼 문제들입니다.
현재 이 글을 포스팅하고 있는 시점에서는 abs 내장 함수를 사용해서 푼 문제들 중
블로그에 있는 풀이법이 있는 문제는 위의 두 문제뿐입니다.
예전에 abs 내장 함수를 사용해서 풀었던 문제가 몇 개 더 있었는데
쌓아놓은 자료들을 정리하면서 포스팅해보겠습니다.
1. 절댓값
실수의 절댓값이란 수직선 위에서 원점으로부터 어떤 수를 나타내는 점까지의 거리를 의미합니다.
쉽게 생각하면 무조건 양수로 만든 것이 절댓값이라고 생각하면 됩니다.
밑의 링크는 절댓값에 대한 위키백과 링크입니다.
※ 파이썬으로 복소수를 다뤄본 적은 없어서... 복소수의 절댓값에 대한 내용은 없습니다. ㅜㅜ
2. abs 내장 함수
2-1. 사용법과 결과
abs 내장 함수의 사용법은 다음과 같습니다.
- abs('절댓값으로 만들 숫자 1개')
내장 함수이므로 특정 모듈을 먼저 호출해야할 필요는 없습니다.
코드를 실행시키면 매개변수에 넣은 숫자 1개에 대한 절댓값을 반환합니다.
정수인 int형 숫자를 넣으면 int형 절댓값이,
실수인 float형 숫자를 넣으면 float형 절댓값이 반환됩니다.
2-2. 공식 문서
밑의 링크는 파이썬 내장 함수에 대한 파이썬 공식 문서 페이지입니다.
여기서 abs 내장 함수에 대한 공식 문서 내용을 찾을 수 있습니다.
2-3. 실행 결과
2-3-1. 매개변수에 정수를 넣은 경우
2-3-1-1. 매개변수에 양수인 정수를 넣은 경우
양수의 절댓값은 양수 그대로이므로 매개변수에 양수인 정수를 넣으면 그 숫자 그대로 반환합니다.
# 양수인 정수들의 절댓값을 출력해봅니다.
print("1의 절댓값:", abs(1))
print("2의 절댓값:", abs(2))
print("3의 절댓값:", abs(3))
print("100의 절댓값:", abs(100))
print("98765의 절댓값:", abs(98765))
2-3-1-2. 매개변수에 0을 넣은 경우
0의 절댓값은 0 그대로이므로 매개변수에 0을 넣으면 0 그대로 반환합니다.
# 0의 절댓값을 출력해봅니다.
print("0의 절댓값:", abs(0))
2-3-1-3. 매개변수에 음수인 정수를 넣은 경우
음수의 절댓값은 앞의 음수 부호를 없앤 양수이므로
매개변수에 음수인 정수를 넣으면 음수 부호를 없앤 양수로 반환됩니다.
# 음수인 정수들의 절댓값을 출력해봅니다.
print("-1의 절댓값:", abs(-1))
print("-2의 절댓값:", abs(-2))
print("-3의 절댓값:", abs(-3))
print("-100의 절댓값:", abs(-100))
print("-98765의 절댓값:", abs(-98765))
2-3-2. 매개변수에 실수를 넣은 경우
2-3-2-1. 매개변수에 양수인 실수를 넣은 경우
양수의 절댓값은 양수 그대로이므로 매개변수에 양수인 실수를 넣으면 그 숫자 그대로 반환합니다.
# 양수인 실수들의 절댓값을 출력해봅니다.
print("1.0의 절댓값:", abs(1.0))
print("2.0의 절댓값:", abs(2.0))
print("3.51의 절댓값:", abs(3.51))
print("100.5555의 절댓값:", abs(100.5555))
print("98765.4321의 절댓값:", abs(98765.4321))
2-3-2-3. 매개변수에 음수인 실수를 넣은 경우
음수의 절댓값은 앞의 음수 부호를 없앤 양수이므로
매개변수에 음수인 실수를 넣으면 음수 부호를 없앤 양수로 반환됩니다.
# 음수인 실수들의 절댓값을 출력해봅니다.
print("-1.0의 절댓값:", abs(-1.0))
print("-2.0의 절댓값:", abs(-2.0))
print("-3.51의 절댓값:", abs(-3.51))
print("-100.5555의 절댓값:", abs(-100.5555))
print("-98765.4321의 절댓값:", abs(-98765.4321))
2-3-3. 매개변수에 다른 자료형을 넣은 경우
abs 내장 함수의 매개변수에는 숫자 자료형인 int, float 자료형만 들어갈 수 있습니다.
문자열인 str 자료형을 매개변수에 넣으면 밑의 사진과 같이
abs()에 맞지 않는 피연산자를 넣었다라는 TypeError 오류가 발생합니다.
밑의 예제처럼 숫자 형태의 문자열을 넣는다고 하더라도 자동으로 형 변환은 되지 않습니다.
# abs 내장 함수의 매개변수에 문자열을 넣어봅니다.
print("abs 내장 함수의 매개변수에 문자열 '1'을 넣은 결과:", abs('1'))
매개변수에 리스트나 튜플을 넣어도 마찬가지로 TypeError 오류가 발생합니다.
# abs 내장 함수의 매개변수에 리스트를 넣어봅니다.
print("abs 내장 함수의 매개변수에 리스트 [1]을 넣은 결과:", abs([1]))
# abs 내장 함수의 매개변수에 튜플을 넣어봅니다.
print("abs 내장 함수의 매개변수에 튜플 (1,)을 넣은 결과:", abs((1,)))
댓글