HOWTO · Python
Python에서 Pi 사용
이 자습서에서는 Python에서 pi 값을 사용합니다.
이 페이지의 내용
숫자로 된 pi 근삿값이 필요하면 Python 표준 라이브러리의 math.pi를 사용하세요. 계산에 이미 NumPy 배열을 사용하고 있다면 numpy.pi가 알맞고, 대수식을 기호 형태로 유지해야 한다면 sympy.pi를 사용하면 됩니다. 이들은 호출하는 함수가 아니라 상수입니다. 아래 예제에서는 각 방식이 언제 유용한지, 각도 변환과 pi 조회가 어떻게 다른지, 직접 작성한 근삿값이 주로 교육용인 이유를 살펴봅니다.
Python의 math.pi 상수 사용하기
일반적인 수치 계산에는 표준 라이브러리의 math 모듈이 가장 간단한 선택이며, 서드파티 패키지가 필요하지 않습니다. 모듈을 가져온 뒤 math.pi를 바로 참조하면 됩니다. 이 값은 부동소수점 근삿값이므로 계산에는 수학적 상수의 정확한 값 대신 유한한 정밀도가 사용됩니다.
다음 예제를 실행해 보세요. 출력에는 원의 넓이를 나타내는 Area 레이블이 영어로 표시됩니다.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
import math
radius = 5
area = math.pi * radius**2
print(f"Area: {area}")
Area: 78.53981633974483
이 예제는 원의 넓이 공식 πr²을 사용합니다. math.pi가 부동소수점 값이므로 결과도 수치 근삿값입니다.
math.pi()처럼 괄호를 붙이지 마세요. 함수가 아닌 값을 호출하려는 코드가 됩니다. 숫자로 pi가 필요한 대부분의 스크립트에서는 math.pi를 바로 사용하면 됩니다.
배열 계산에 NumPy의 pi 상수 사용하기
주변 계산에서 이미 NumPy 배열을 사용한다면 NumPy의 배열 연산과 함께 pi 상수를 편리하게 쓸 수 있습니다. NumPy를 np라는 이름으로 가져온 뒤 괄호 없이 np.pi(또는 numpy.pi)를 참조하세요. 예를 들어 도 단위 각도 배열에 np.pi / 180을 곱하면 값을 라디안으로 변환한 뒤 NumPy 삼각 함수를 적용할 수 있습니다.
다음 예제는 배열 연산 한 번으로 도 단위 각도 세 개를 라디안으로 변환합니다.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
import numpy as np
degrees = np.array([0, 90, 180])
radians = degrees * np.pi / 180
print(radians)
[0. 1.57079633 3.14159265]
NumPy는 서드파티 의존성이므로 스크립트를 실행하는 환경에 설치되어 있어야 합니다. NumPy를 다른 용도로 사용하지 않는 단일 스칼라 계산이라면 표준 라이브러리의 math.pi를 사용해 이 의존성을 피할 수 있습니다. numpy.pi도 같은 익숙한 수치 상수를 나타냅니다. 실용적인 장점은 정밀도의 차이가 아니라 배열 중심 코드와 일관되게 사용할 수 있다는 점입니다.
기호 수학에 SymPy의 pi 사용하기
식을 곧바로 부동소수점 계산으로 바꾸지 않고 대수학, 미적분 또는 정확한 형태의 조작을 위해 기호로 유지하려면 SymPy를 사용하세요. from sympy import pi, symbols를 사용하면 pi * x**2에서 pi와 기호 x가 기호 형태로 남습니다. 그러면 SymPy로 수학식 자체를 다룰 수 있으며, 수치 근삿값으로 바꾸는 것은 별도의 단계입니다.
이는 수치 부동소수점 값인 math.pi 및 numpy.pi와 다릅니다. SymPy 역시 서드파티 의존성입니다. 기호 연산이 필요할 때 sympy.pi를 선택하고, 단지 수치 pi 값을 얻기 위해 SymPy를 가져오지는 마세요.
math.radians로 도를 라디안으로 변환하기
math.radians(degrees)는 도 단위 각도를 라디안으로 변환합니다. 예를 들어 math.radians(90)은 π/2의 부동소수점 근삿값을, math.radians(180)은 π의 근삿값을 반환합니다. 각도를 변환할 때는 유용하지만, 일반적으로 pi 값을 가져오는 방법은 아닙니다. pi 값 자체가 필요하면 math.pi를 사용하세요.
다음 예제를 실행해 보세요. 출력에 표시되는 Radians 레이블은 영어로 유지됩니다.
import math
angle_degrees = 90
angle_radians = math.radians(angle_degrees)
print(f"Radians: {angle_radians}")
Radians: 1.5707963267948966
이미 NumPy를 사용하는 작업에서 여러 각도를 변환한다면 NumPy의 배열 기반 변환을 사용할 수도 있습니다. 스칼라 각도 하나를 변환할 때는 표준 라이브러리의 math.radians가 간결한 선택입니다.
교육용 예제에서 직접 만든 pi 근삿값 사용하기
짧은 소수 근삿값은 공식에서 상수를 어떻게 쓰는지 보여 주는 데 도움이 됩니다. 예제의 출력에는 원주를 뜻하는 Circumference 레이블이 영어로 표시됩니다.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
PI = 3.141592653589793
diameter = 10
circumference = PI * diameter
print(f"Circumference: {circumference}")
Circumference: 31.41592653589793
지정한 자릿수도 유한한 근삿값일 뿐이며, 일반적인 작업에서 숫자를 직접 복사해 쓸 이점은 없습니다. 보통의 수치 계산에는 math.pi를 사용하고, 공식이나 상수 또는 근삿값의 정밀도를 설명하는 학습 예제에서만 직접 만든 값을 활용하세요.