Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 절대값 완벽 가이드: abs() 함수 사용법과 실전 예제

Python의 abs() 함수는 숫자의 절대값(absolute value)을 반환합니다. 절대값이란 그 수가 0으로부터 얼마나 떨어져 있는지를 나타내는 값으로, 음수는 양수로 바뀌고 양수는 그대로 유지됩니다. 예를 들어 abs(-9)는 9를 반환하고, abs(2)는 2를 반환합니다.


Python에서의 절대값 개념 이해하기

수학에서 절대값은 수직선 위에서 어떤 수가 0으로부터 떨어진 거리를 의미합니다. 수가 양수든 음수든 상관없이, 절대값은 항상 양수가 됩니다.

예를 들어 5의 절대값은 5이고, -5의 절대값 역시 5입니다. 두 수 모두 수직선상에서 0으로부터 다섯 칸 떨어져 있기 때문입니다. 아래 수직선 예시를 보면 쉽게 이해할 수 있습니다.

-5-4-3-2-1012345

-5는 0에서 5칸 떨어져 있고, 5 역시 0에서 5칸 떨어져 있습니다.

절대값은 수학과 물리학에서 중요한 개념이며, 두 분야에서 폭넓게 활용됩니다. 특히 데이터 분석에서도 자주 사용되는데, 대표적인 활용 사례가 바로 거리 계산입니다.

Python abs() 함수 기본 문법

Python의 abs() 함수는 숫자의 절대값을 계산합니다. 이 함수는 절대값을 구하고자 하는 숫자 하나를 매개변수로 받습니다.

abs() 함수의 기본 문법은 다음과 같습니다.

abs(value)

abs() 함수는 전달하는 값에 따라 정수 또는 부동소수점(float)을 반환합니다.

  • abs(-9) → 9 반환
  • abs(-2.2) → 2.2 반환

2.2는 소수점이 포함된 부동소수점 값입니다. abs()는 정수와 부동소수점을 모두 지원하므로, 별도의 자료형 변환 없이 바로 사용할 수 있다는 장점이 있습니다.

또한 abs()는 0과 양수에도 사용할 수 있으며, 이 경우에는 입력된 값을 그대로 반환합니다. 양수와 0은 음수가 아니기 때문입니다.

그럼 실제 예제를 통해 abs() 함수가 어떻게 동작하는지 살펴보겠습니다.

Python abs() 실전 예제

예제 1: 과속 판정 프로그램 만들기

여러분이 지역 경찰서에서 일하면서, 특정 도로를 주행하는 운전자가 과속 딱지를 받아야 하는지 판단하는 프로그램을 만들어 달라는 요청을 받았다고 가정해 보겠습니다. 해당 도로에서는 차량들이 평균 속도와 비슷한 속도로 주행해야 합니다.

경찰서가 이런 규칙을 두는 이유는, 이 도로에서 잇따른 사고가 발생했고 그 원인 대부분이 운전자 간 속도 편차가 컸기 때문입니다. 평균 속도보다 시속 약 16km 이상 빠르거나 느리게 주행하면 위험 요소가 되므로, 이 기준을 벗어난 운전자에게는 딱지를 발행해야 합니다.

속도 차이 계산하기

운전자의 속도를 기준으로 딱지 발행 여부를 판단하는 프로그램을 작성해 보겠습니다.

average_speed = 50
current_speed = 38

difference_between_average_and_current_speed = average_speed - current_speed

absolute_value = abs(difference_between_average_and_current_speed)

print(absolute_value)

위 코드를 실행하면 12가 출력됩니다.

첫 번째 줄에서는 도로 위 차량들의 평균 속도(시속 50마일, 약 80km/h)를 저장하는 변수를 선언했습니다. 그다음에는 특정 운전자의 현재 속도(시속 38마일, 약 61km/h)를 저장하는 변수를 선언했습니다.

다음 줄에서는 해당 운전자의 현재 속도와 평균 속도의 차이를 계산한 뒤, 이 값을 abs() 함수에 넣어 절대값으로 변환했습니다.

엄밀히 말하면 운전자의 속도와 평균 속도의 차이는 -12mph(약 -19km/h)입니다. 하지만 우리가 알고 싶은 것은 '얼마나 차이가 나는가'이지, 방향이 아니므로 abs()를 사용해 절대값으로 변환한 결과 프로그램은 12를 반환했습니다.

메시지 출력하기

이제 운전자가 딱지를 받아야 하는 경우 안내 메시지를 출력하도록 프로그램을 확장해 보겠습니다. 앞서 작성한 코드 마지막에 if문을 추가하면 됩니다.

print("속도 차이: " + str(absolute_value))

if absolute_value > 10:
    print("이 운전자는 제한 속도를 초과했습니다. 딱지를 발행하세요.")
else:
    print("이 운전자는 제한 속도를 초과하지 않았습니다.")

먼저 운전자의 속도 차이를 콘솔에 출력합니다. 참고로 문자열과 숫자를 연결할 때는 str()로 형 변환을 해주어야 오류가 발생하지 않습니다. 그다음 if문으로 운전자가 제한 속도를 초과했는지 판단하고, 조건에 따라 서로 다른 메시지를 출력합니다.

절대값 활용: 거리 계산하기

절대값은 거리 계산에서도 널리 사용됩니다.

예를 들어 집에서 20마일(약 32km) 떨어진 곳으로 이동하려고 했는데, 실수로 31마일을 주행했다고 가정해 보겠습니다.

목적지까지 남은 거리를 계산하면 결과가 음수가 됩니다. 이 음수를 양수로 변환하려면 abs() 함수를 사용하면 됩니다.

miles_from_home = 20
travelled = 31

miles_left = miles_from_home - travelled

print(abs(miles_left))

위 코드를 실행하면 11이 출력됩니다.

만약 abs()를 사용하지 않았다면 프로그램은 -11을 반환했을 것입니다. 20과 31의 차이가 -11이기 때문입니다. 하지만 abs()를 사용했기 때문에 프로그램은 절대값인 11을 반환했습니다.

마무리

Python의 abs() 함수는 부동소수점 숫자나 정수를 절대값으로 변환할 때 사용합니다. 특히 두 값 사이의 '차이'를 알고 싶을 때 매우 유용합니다.

이번 글에서는 Python에서 abs() 함수를 사용하는 방법을 두 가지 실전 예제와 함께 살펴보았습니다. 기본 문법은 간단하지만, 속도 차이 계산이나 거리 계산처럼 실무에서 다양하게 응용할 수 있으니 꼭 기억해 두세요.