[Python 모듈] math : 수학적인 함수와 상수를 제공하는 모듈

1. math 모듈이란?

 

math 모듈은 수학적인 함수와 상수를 제공하는 기본 모듈입니다. 이 모듈을 사용하면 삼각함수, 지수함수, 로그함수 등의 수학 함수를 계산할 수 있습니다. 또한 파이(pi), 자연상수(e)와 같은 상수 값을 사용할 수 있습니다. 상수(Constant)란 프로그래밍에서 변하지 않는 값을 의미합니다. 즉, 한 번 정해진 값은 프로그램 실행 중에는 변경할 수 없습니다. 상수는 보통 변수와 구분하기 위해 대문자로 표기합니다.

 

math모듈은 별도의 설치 과정이 필요없습니다. 모듈을 사용하려면 아래와 같이 import를 하면 됩니다.

import math

 


2. math.ceil 함수

 

math.ceil 함수는 주어진 숫자보다 크거나 같은 가장 작은 정수를 반환합니다. 쉽게 말하면 주어진 숫자를 올림하여 정수를 반환하는 함수입니다.

 

  • number1은 3.2입니다. math.ceil 함수를 사용하면 3.2보다 크거나 같은 가장 작은 정수인 4를 반환합니다.
  • number2는 -2.7입니다. math.ceil 함수를 사용하면 -2.7보다 크거나 같은 가장 작은 정수인 -2를 반환합니다.
  • number3는 5입니다. math.ceil 함수를 사용하면 5보다 크거나 같은 가장 작은 정수인 5를 반환합니다. 이 경우, number3이 이미 정수이므로 올림한 결과는 동일한 값인 5가 됩니다.

 

# 예제 1: 양수 올림
number1 = 3.2
result1 = math.ceil(number1)
print("3.2를 올림한 결과:", result1)  # 출력: 3.2를 올림한 결과: 4

# 예제 2: 음수 올림
number2 = -2.7
result2 = math.ceil(number2)
print("-2.7를 올림한 결과:", result2)  # 출력: -2.7를 올림한 결과: -2

# 예제 3: 정수 올림
number3 = 5
result3 = math.ceil(number3)
print("5를 올림한 결과:", result3)  # 출력: 5를 올림한 결과: 5

 


3. math.floor 함수

 

math.floor 함수는 주어진 숫자보다 작거나 같은 가장 큰 정수를 반환합니다. 쉽게 말하면 주어진 숫자를 내림하여 정수를 반환하는 함수입니다.

 

  • number1은 3.2입니다. math.floor() 함수를 사용하면 3.2보다 작거나 같은 가장 큰 정수인 3을 반환합니다.
  • number2는 -2.7입니다. math.floor() 함수를 사용하면 -2.7보다 작거나 같은 가장 큰 정수인 -3을 반환합니다.
  • number3는 5입니다. math.floor() 함수를 사용하면 5보다 작거나 같은 가장 큰 정수인 5를 반환합니다. 이 경우, number3이 이미 정수이므로 내림한 결과는 동일한 값인 5가 됩니다.

 

# 예제 1: 양수 내림
number1 = 3.2
result1 = math.floor(number1)
print("3.2를 내림한 결과:", result1)  # 출력: 3.2를 내림한 결과: 3

# 예제 2: 음수 내림
number2 = -2.7
result2 = math.floor(number2)
print("-2.7를 내림한 결과:", result2)  # 출력: -2.7를 내림한 결과: -3

# 예제 3: 정수 내림
number3 = 5
result3 = math.floor(number3)
print("5를 내림한 결과:", result3)  # 출력: 5를 내림한 결과: 5

 


4. math.sqrt 함수

 

math.sqrt() 함수는 주어진 숫자의 제곱근을 반환합니다. 이 함수는 양수 또는 0에 대해서만 작동하며, 음수의 제곱근은 계산할 수 없습니다. 음수의 제곱근을 계산하려고 하면, 'ValueError'가 발생합니다. 

 

  • number1은 9입니다. math.sqrt() 함수를 사용하면 9의 제곱근인 3.0을 반환합니다.
  • number2는 0입니다. math.sqrt() 함수를 사용하면 0의 제곱근인 0.0을 반환합니다.
  • number3은 1.44입니다. math.sqrt() 함수를 사용하면 1.44의 제곱근인 1.2를 반환합니다.

 

# 예제 1: 양수의 제곱근
number1 = 9
result1 = math.sqrt(number1)
print("9의 제곱근:", result1)  # 출력: 9의 제곱근: 3.0

# 예제 2: 0의 제곱근
number2 = 0
result2 = math.sqrt(number2)
print("0의 제곱근:", result2)  # 출력: 0의 제곱근: 0.0

# 예제 3: 소수의 제곱근
number3 = 1.44
result3 = math.sqrt(number3)
print("1.44의 제곱근:", result3)  # 출력: 1.44의 제곱근: 1.2

 


5. math.pow 함수

 

math.pow() 함수는 주어진 숫자의 거듭제곱 값을 계산합니다. 이 함수는 math.pow(x, y)형태로 x를 y번 거듭제곱한 결과를 반환합니다. math.pow() 함수 외에도 파이썬의 내장 연산자 **를 사용하여 거듭제곱을 계산할 수 있습니다. 예를 들어, math.pow(base1, exponent1) 대신 base1 ** exponent1를 사용할 수 있습니다.

 

  • base1은 2이고, exponent1은 3입니다. math.pow() 함수를 사용하여 2의 3승인 8.0을 계산합니다.
  • base2는 -3이고, exponent2는 2입니다. math.pow() 함수를 사용하여 -3의 2승인 9.0을 계산합니다.
  • base3는 2.5이고, exponent3는 3입니다. math.pow() 함수를 사용하여 2.5의 3승인 15.625를 계산합니다.

 

# 예제 1: 거듭제곱 계산
base1 = 2
exponent1 = 3
result1 = math.pow(base1, exponent1)
print("2의 3승:", result1)  # 출력: 2의 3승: 8.0

# 예제 2: 음수 거듭제곱 계산
base2 = -3
exponent2 = 2
result2 = math.pow(base2, exponent2)
print("-3의 2승:", result2)  # 출력: -3의 2승: 9.0

# 예제 3: 소수 거듭제곱 계산
base3 = 2.5
exponent3 = 3
result3 = math.pow(base3, exponent3)
print("2.5의 3승:", result3)  # 출력: 2.5의 3승: 15.625

 


6. math.exp 함수

 

math.exp() 함수는 주어진 숫자에 대한 자연상수(e)의 거듭제곱 값을 계산합니다. 이 함수는 주어진 숫자를 지수로 사용하여 e의 거듭제곱을 계산하는 데 사용됩니다.

 

  • number1은 1입니다. math.exp() 함수를 사용하여 e의 1승인 2.718281828459045를 계산합니다.
  • number2는 -1입니다. math.exp() 함수를 사용하여 e의 -1승인 0.36787944117144233를 계산합니다.
  • number3은 0.5입니다. math.exp() 함수를 사용하여 e의 0.5승인 1.6487212707001282를 계산합니다.

 

# 예제 1: 양수에 대한 e의 거듭제곱 계산
number1 = 1
result1 = math.exp(number1)
print("e의 1승:", result1)  # 출력: e의 1승: 2.718281828459045

# 예제 2: 음수에 대한 e의 거듭제곱 계산
number2 = -1
result2 = math.exp(number2)
print("e의 -1승:", result2)  # 출력: e의 -1승: 0.36787944117144233

# 예제 3: 소수에 대한 e의 거듭제곱 계산
number3 = 0.5
result3 = math.exp(number3)
print("e의 0.5승:", result3)  # 출력: e의 0.5승: 1.6487212707001282

 


7. math.log 함수

 

math.log() 함수는 주어진 숫자에 대한 로그를 계산합니다. 이 함수는 math.log(x, base) 형태로 x의 로그 값을 반환합니다. base를 지정하지 않으면, 자연로그 값을 계산합니다.

 

  • number1은 10입니다. math.log() 함수를 사용하여 10의 자연 로그인 2.302585092994046를 계산합니다.
  • number2는 8이고, base2는 2입니다. math.log() 함수를 사용하여 8의 밑이 2인 로그인 3.0을 계산합니다.
  • number3은 100이고, base3는 10입니다. math.log() 함수를 사용하여 100의 밑이 10인 로그인 2.0을 계산합니다.

 

# 예제 1: 자연 로그 계산
number1 = 10
result1 = math.log(number1)
print("10의 자연 로그:", result1)  # 출력: 10의 자연 로그: 2.302585092994046

# 예제 2: 밑이 2인 로그 계산
number2 = 8
base2 = 2
result2 = math.log(number2, base2)
print("8의 밑이 2인 로그:", result2)  # 출력: 8의 밑이 2인 로그: 3.0

# 예제 3: 밑이 10인 로그 계산
number3 = 100
base3 = 10
result3 = math.log(number3, base3)
print("100의 밑이 10인 로그:", result3)  # 출력: 100의 밑이 10인 로그: 2.0

 


8. math.log10 함수

 

math.log10() 함수는 10을 밑으로 하는 로그 값을 계산하는 함수입니다. 

 

  • number1은 100입니다. math.log10() 함수를 사용하여 100의 밑이 10인 로그인 2.0을 계산합니다.
  • number2는 1000입니다. math.log10() 함수를 사용하여 1000의 밑이 10인 로그인 3.0을 계산합니다.
  • number3은 0.01입니다. math.log10() 함수를 사용하여 0.01의 밑이 10인 로그인 -2.0을 계산합니다.

 

# 예제 1: 밑이 10인 로그 계산
number1 = 100
result1 = math.log10(number1)
print("100의 밑이 10인 로그:", result1)  # 출력: 100의 밑이 10인 로그: 2.0

# 예제 2: 밑이 10인 로그 계산
number2 = 1000
result2 = math.log10(number2)
print("1000의 밑이 10인 로그:", result2)  # 출력: 1000의 밑이 10인 로그: 3.0

# 예제 3: 소수에 대한 밑이 10인 로그 계산
number3 = 0.01
result3 = math.log10(number3)
print("0.01의 밑이 10인 로그:", result3)  # 출력: 0.01의 밑이 10인 로그: -2.0

 


9. math.radians 함수

 

math.radians() 함수는 주어진 각도를 도(degree)에서 라디안(radian)으로 변환합니다. 이 함수는 주로 삼각함수를 사용할 때 각도 단위를 라디안으로 변환해야 하는 경우에 사용됩니다.

 

  • degree1은 90도입니다. math.radians() 함수를 사용하여 90도를 라디안으로 변환하면 약 1.5708 라디안이 됩니다.
  • degree2는 180도입니다. math.radians() 함수를 사용하여 180도를 라디안으로 변환하면 약 3.1416 라디안이 됩니다.
  • degree3는 360도입니다. math.radians() 함수를 사용하여 360도를 라디안으로 변환하면 약 6.2832 라디안이 됩니다.

 

# 예제 1: 90도를 라디안으로 변환
degree1 = 90
radian1 = math.radians(degree1)
print("90도를 라디안으로 변환:", radian1)  # 출력: 90도를 라디안으로 변환: 1.5707963267948966

# 예제 2: 180도를 라디안으로 변환
degree2 = 180
radian2 = math.radians(degree2)
print("180도를 라디안으로 변환:", radian2)  # 출력: 180도를 라디안으로 변환: 3.141592653589793

# 예제 3: 360도를 라디안으로 변환
degree3 = 360
radian3 = math.radians(degree3)
print("360도를 라디안으로 변환:", radian3)  # 출력: 360도를 라디안으로 변환: 6.283185307179586

 



10. math.degrees 함수

 

math.degrees() 함수는 주어진 각도를 라디안(radian)에서 도(degree)로 변환합니다. 이 함수는 주로 삼각함수를 사용한 후에 결과를 도 단위로 다시 변환해야 하는 경우에 사용됩니다.

 

  • radian1은 약 1.5708 라디안입니다. math.degrees() 함수를 사용하여 1.5708 라디안을 도로 변환하면 90도가 됩니다.
  • radian2는 약 3.1416 라디안입니다. math.degrees() 함수를 사용하여 3.1416 라디안을 도로 변환하면 180도가 됩니다.
  • radian3는 약 6.2832 라디안입니다. math.degrees() 함수를 사용하여 6.2832 라디안을 도로 변환하면 360도가 됩니다.

 

# 예제 1: 라디안을 도로 변환
radian1 = 1.5707963267948966
degree1 = math.degrees(radian1)
print("1.5708 라디안을 도로 변환:", degree1)  # 출력: 1.5708 라디안을 도로 변환: 90.0

# 예제 2: 라디안을 도로 변환
radian2 = 3.141592653589793
degree2 = math.degrees(radian2)
print("3.1416 라디안을 도로 변환:", degree2)  # 출력: 3.1416 라디안을 도로 변환: 180.0

# 예제 3: 라디안을 도로 변환
radian3 = 6.283185307179586
degree3 = math.degrees(radian3)
print("6.2832 라디안을 도로 변환:", degree3)  # 출력: 6.2832 라디안을 도로 변환: 360.0

 


11. math.sin 함수

 

math.sin() 함수는 주어진 각도의 사인(sin) 값을 계산합니다. 이 함수는 삼각함수 중 하나로 주로 삼각형의 변 길이를 구하는 데 사용됩니다. 주어진 각도는 라디안 단위로 입력되어야 합니다.

 

  • degree1은 30도입니다. 이 각도를 라디안으로 변환한 후 math.sin() 함수를 사용하여 30도의 사인 값을 계산하면 약 0.5가 됩니다.
  • degree2는 45도입니다. 이 각도를 라디안으로 변환한 후 math.sin() 함수를 사용하여 45도의 사인 값을 계산하면 약 0.7071가 됩니다.
  • degree3는 90도입니다. 이 각도를 라디안으로 변환한 후 math.sin() 함수를 사용하여 90도의 사인 값을 계산하면 정확히 1.0이 됩니다.

 

# 예제 1: 30도의 사인 값 계산
degree1 = 30
radian1 = math.radians(degree1)
sin1 = math.sin(radian1)
print("30도의 사인 값:", sin1)  # 출력: 30도의 사인 값: 0.49999999999999994

# 예제 2: 45도의 사인 값 계산
degree2 = 45
radian2 = math.radians(degree2)
sin2 = math.sin(radian2)
print("45도의 사인 값:", sin2)  # 출력: 45도의 사인 값: 0.7071067811865476

# 예제 3: 90도의 사인 값 계산
degree3 = 90
radian3 = math.radians(degree3)
sin3 = math.sin(radian3)
print("90도의 사인 값:", sin3)  # 출력: 90도의 사인 값: 1.0

 


12. math.cos 함수

 

math.cos() 함수는 주어진 각도의 코사인(cosine) 값을 계산합니다. 이 함수는 삼각함수 중 하나로 주로 삼각형의 변 길이를 구하는 데 사용됩니다. 주어진 각도는 라디안 단위로 입력되어야 합니다.

 

  • degree1은 60도입니다. 이 각도를 라디안으로 변환한 후 math.cos() 함수를 사용하여 60도의 코사인 값을 계산하면 약 0.5가 됩니다.
  • degree2는 45도입니다. 이 각도를 라디안으로 변환한 후 math.cos() 함수를 사용하여 45도의 코사인 값을 계산하면 약 0.7071가 됩니다.
  • degree3는 0도입니다. 이 각도를 라디안으로 변환한 후 math.cos() 함수를 사용하여 0도의 코사인 값을 계산하면 정확히 1.0이 됩니다.

 

# 예제 1: 60도의 코사인 값 계산
degree1 = 60
radian1 = math.radians(degree1)
cos1 = math.cos(radian1)
print("60도의 코사인 값:", cos1)  # 출력: 60도의 코사인 값: 0.5000000000000001

# 예제 2: 45도의 코사인 값 계산
degree2 = 45
radian2 = math.radians(degree2)
cos2 = math.cos(radian2)
print("45도의 코사인 값:", cos2)  # 출력: 45도의 코사인 값: 0.7071067811865476

# 예제 3: 0도의 코사인 값 계산
degree3 = 0
radian3 = math.radians(degree3)
cos3 = math.cos(radian3)
print("0도의 코사인 값:", cos3)  # 출력: 0도의 코사인 값: 1.0

 


13. math.tan 함수

 

math.tan() 함수는 주어진 각도의 탄젠트(tangent) 값을 계산합니다. 이 함수는 삼각함수 중 하나로 주로 삼각형의 변 길이를 구하는 데 사용됩니다. 주어진 각도는 라디안 단위로 입력되어야 합니다.

 

  • degree1은 45도입니다. 이 각도를 라디안으로 변환한 후 math.tan() 함수를 사용하여 45도의 탄젠트 값을 계산하면 약 1.0이 됩니다.
  • degree2는 30도입니다. 이 각도를 라디안으로 변환한 후 math.tan() 함수를 사용하여 30도의 탄젠트 값을 계산하면 약 0.5773이 됩니다.
  • degree3는 60도입니다. 이 각도를 라디안으로 변환한 후 math.tan() 함수를 사용하여 60도의 탄젠트 값을 계산하면 약 1.7321이 됩니다.

 

# 예제 1: 45도의 탄젠트 값 계산
degree1 = 45
radian1 = math.radians(degree1)
tan1 = math.tan(radian1)
print("45도의 탄젠트 값:", tan1)  # 출력: 45도의 탄젠트 값: 0.9999999999999999

# 예제 2: 30도의 탄젠트 값 계산
degree2 = 30
radian2 = math.radians(degree2)
tan2 = math.tan(radian2)
print("30도의 탄젠트 값:", tan2)  # 출력: 30도의 탄젠트 값: 0.5773502691896257

# 예제 3: 60도의 탄젠트 값 계산
degree3 = 60
radian3 = math.radians(degree3)
tan3 = math.tan(radian3)
print("60도의 탄젠트 값:", tan3)  # 출력: 60도의 탄젠트 값: 1.7320508075688774

 


14. math.asin 함수

 

math.asin() 함수는 주어진 사인(sine) 값에 대한 역사인(inverse sine)을 계산합니다. 이 함수는 주로 삼각형의 각도를 구하는 데 사용됩니다. 함수의 결과값은 라디안 단위로 반환됩니다.

 

  • sin_value1은 0.5입니다. math.asin() 함수를 사용하여 사인 값이 0.5인 각도의 역사인 값을 계산하면 라디안 값으로 약 0.5236이 됩니다. 이 값을 도로 변환하면 30도가 됩니다.
  • sin_value2는 0.7071입니다. math.asin() 함수를 사용하여 사인 값이 0.7071인 각도의 역사인 값을 계산하면 라디안 값으로 약 0.7853이 됩니다. 이 값을 도로 변환하면 약 45도가 됩니다.
  • sin_value3는 1.0입니다. math.asin() 함수를 사용하여 사인 값이 1.0인 각도의 역사인 값을 계산하면 라디안 값으로 약 1.5708이 됩니다. 이 값을 도로 변환하면 90도가 됩니다.

 

# 예제 1: 사인 값이 0.5인 각도의 역사인 값 계산
sin_value1 = 0.5
radian1 = math.asin(sin_value1)
degree1 = math.degrees(radian1)
print("사인 값이 0.5인 각도:", degree1)  # 출력: 사인 값이 0.5인 각도: 30.000000000000004

# 예제 2: 사인 값이 0.7071인 각도의 역사인 값 계산
sin_value2 = 0.7071
radian2 = math.asin(sin_value2)
degree2 = math.degrees(radian2)
print("사인 값이 0.7071인 각도:", degree2)  # 출력: 사인 값이 0.7071인 각도: 44.99775005746278

# 예제 3: 사인 값이 1.0인 각도의 역사인 값 계산
sin_value3 = 1.0
radian3 = math.asin(sin_value3)
degree3 = math.degrees(radian3)
print("사인 값이 1.0인 각도:", degree3)  # 출력: 사인 값이 1.0인 각도: 90.0

 


15. math.acos 함수

 

math.acos() 함수는 주어진 코사인(cosine) 값에 대한 역코사인(inverse cosine)을 계산합니다. 이 함수는 주로 삼각형의 각도를 구하는 데 사용됩니다. 함수의 결과값은 라디안 단위로 반환됩니다.

 

  • cos_value1은 0.5입니다. math.acos() 함수를 사용하여 코사인 값이 0.5인 각도의 역코사인 값을 계산하면 라디안 값으로 약 1.0472가 됩니다. 이 값을 도로 변환하면 60도가 됩니다.
  • cos_value2는 0.7071입니다. math.acos() 함수를 사용하여 코사인 값이 0.7071인 각도의 역코사인 값을 계산하면 라디안 값으로 약 0.7854가 됩니다. 이 값을 도로 변환하면 약 45도가 됩니다.
  • cos_value3는 1.0입니다. math.acos() 함수를 사용하여 코사인 값이 1.0인 각도의 역코사인 값을 계산하면 라디안 값으로 0이 됩니다. 이 값을 도로 변환하면 0도가 됩니다.

 

# 예제 1: 코사인 값이 0.5인 각도의 역코사인 값 계산
cos_value1 = 0.5
radian1 = math.acos(cos_value1)
degree1 = math.degrees(radian1)
print("코사인 값이 0.5인 각도:", degree1)  # 출력: 코사인 값이 0.5인 각도: 60.00000000000001

# 예제 2: 코사인 값이 0.7071인 각도의 역코사인 값 계산
cos_value2 = 0.7071
radian2 = math.acos(cos_value2)
degree2 = math.degrees(radian2)
print("코사인 값이 0.7071인 각도:", degree2)  # 출력: 코사인 값이 0.7071인 각도: 45.00224994253722

# 예제 3: 코사인 값이 1.0인 각도의 역코사인 값 계산
cos_value3 = 1.0
radian3 = math.acos(cos_value3)
degree3 = math.degrees(radian3)
print("코사인 값이 1.0인 각도:", degree3)  # 출력: 코사인 값이 1.0인 각도: 0.0

 


16. math.atan 함수

 

math.atan() 함수는 주어진 탄젠트(tangent) 값에 대한 역탄젠트(inverse tangent)를 계산합니다. 이 함수는 주로 삼각형의 각도를 구하는 데 사용됩니다. 함수의 결과값은 라디안 단위로 반환됩니다.

 

  • tan_value1은 1.0입니다. math.atan() 함수를 사용하여 탄젠트 값이 1.0인 각도의 역탄젠트 값을 계산하면 라디안 값으로 약 0.7854가 됩니다. 이 값을 도로 변환하면 45도가 됩니다.
  • tan_value2는 0.5773입니다. math.atan() 함수를 사용하여 탄젠트 값이 0.5773인 각도의 역탄젠트 값을 계산하면 라디안 값으로 약 0.5236가 됩니다. 이 값을 도로 변환하면 약 30도가 됩니다.
  • tan_value3는 0입니다. math.atan() 함수를 사용하여 탄젠트 값이 0인 각도의 역탄젠트 값을 계산하면 라디안 값으로 0이 됩니다. 이 값을 도로 변환하면 0도가됩니다.

 

# 예제 1: 탄젠트 값이 1.0인 각도의 역탄젠트 값 계산
tan_value1 = 1.0
radian1 = math.atan(tan_value1)
degree1 = math.degrees(radian1)
print("탄젠트 값이 1.0인 각도:", degree1)  # 출력: 탄젠트 값이 1.0인 각도: 45.0

# 예제 2: 탄젠트 값이 0.5773인 각도의 역탄젠트 값 계산
tan_value2 = 0.5773
radian2 = math.atan(tan_value2)
degree2 = math.degrees(radian2)
print("탄젠트 값이 0.5773인 각도:", degree2)  # 출력: 탄젠트 값이 0.5773인 각도: 30.00121819185118

# 예제 3: 탄젠트 값이 0인 각도의 역탄젠트 값 계산
tan_value3 = 0
radian3 = math.atan(tan_value3)
degree3 = math.degrees(radian3)
print("탄젠트 값이 0인 각도:", degree3)  # 출력: 탄젠트 값이 0인 각도: 0.0