티스토리 뷰

Python

Python,module math [수학]

hwangyoungjae 2016. 5. 17. 13:54
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

대부분의 수학관련 함수들이 math모듈에 존재하지만자주사용되는 아래의 함수에 대해서는 특별한 모듈 임포트없이 사용할수 있도록 내장함수로 제공한다.

-. 내장형으로 제공되는 수학관련 함수들

>sum(iterable[, start])

순회가능한(iterable)객체의 총 합계를 반환총 합계의 시작값(start)이 주어지면 그 값부터 누적되며그렇지 않은 경우 0이 기본값이 된다.

>>> sum([1,2,3]) #1 + 2 + 3 = 6

6

>>> sum([1,2,3],4) #4 + 1 + 2 + 3 = 10

10

 

>max(iterable)

순회가능한 객체의 최댓값을 반환

>>> max([1,2,3])

3

 

>min(iterable)

순회가능한 객체의 최솟값을 반환

>>> min([1,2,3])

1

 

>abx(x)

인자 x의 절대값을 반환

>>> abs(-11)

11

 

>pow(x, y[, z])

x y제곱값을 반환세번째 인자가 입력된 경우, x y제곱한 결과를 z로 나눈 나머지(modulo연산)를 반환

>>> pow(2,10) #210제곱

1024

>>> pow(2,10,100) #2 10제곱을 100으로 나눈 나머지

24

 

>round(x[, n])

인자 x의 반올림결과를 반환자릿수가 지정된 경우 반올림 결과를 지정된 자리까지 나타내며그렇지 않은경우 기본값은 0이다.

>>> round(3.141592) #소수점이후부터 반올림

3

>>> round(3.141592,2) #소수점 2자리 이후부터 반올림

3.14

>>> round(2341.1234,-1) #소수점 1자리 이전부터 반올림

2340.0

 

>divmod(a, b)

'a/b'의 몫과 나머지를 튜플형태로 반환

>>> divmod(10,7)

(1, 3)

>>> divmod(5.3,2.1)

(2.0, 1.0999999999999996)

 

>> math 모듈 <<

수학관련 함수들이 들어있는 모듈이며

모듈내의 함수는"import math"한후사용가능

 

-. 상수

math모듈에서 상수는 아래와 같이 정의되어 있다.

>원주율(π)

>>> math.pi

3.141592653589793

 

>자연상수(e) 

>>> math.e

2.718281828459045

 

-. 수치 연산

수학모듈에 정의되어있는 수치 연산 관련 함수는 아래와 같다.

>math.ceil(x)

'N >= x'를 만족하는 가장 작은 정수 N을 반환(올림 연산)

>>> math.ceil(3.14)

4

 

>math.floor(x)

'N <= x'를 만족하는 가장 큰 정수 N을 반환(내림 연산)

>>> math.floor(3.14)

3

 

>math.trunc(x)

x의 정수부분만을 반환(버림 연산)

>>> math.trunc(3.14)

3

 

>math.copysign(x,y)

y의 부호만 x에 복사하여 반환

>>> math.copysign(6.5,-0.0) #부호만 복사

-6.5

 

>math.fabs(x)

x의 절대값을 반환

>>> math.fabs(-6.5) #절대값연산

6.5

 

>math.factorial(x)

x의 계승(factorial,x!)값을 반환

>>> math.factorial(3.0) #factorifal연산(3!)

6

 

>math.fmod(x,y)

c라이브러리에 있는 fmod()함수를 호출,

파이썬 연산자중 '%'(나머지연산)과 유사하다하지만 연산결과가 항상 동일한것은 아니다. math.fmod(x,y)연산은 항상 피제수 x와 몫으 부호가 동일하지만 '%'연산은 몫이 피제수와 항상 일치하지 않기 때문이다또한 부동소수점 연사ㄴ의 정확도차이도 존재하기 때문에,

일반적으로 정수연산에는 '%'연산을

부동소수점연산에는 math.fmod()연산을 사용하는것을 권장한다.

>>> math.fmod(5.5, 3) #피제수와 제수의 부호가 같은 경우

2.5

>>> 5.5 % 3

2.5

>>> math.fmod(-5.5, 3) #피제수와 제수의 부호가 다른 경우

-2.5

>>> -5.5 % 3

0.5

 

>math.fsum(iterable)

입력받은 값의 합계를 반환

>>> math.fsum([1,2,3])

6.0

 

>math.modf(x)

입력받은 x의 순수 소수부분과 정수부분으로 분리하여 튜플로 반환

분리된 두 부분 모두에 부호가 할당됨

>>> math.modf(3.14)

(0.14000000000000012, 3.0)

>>> math.modf(-6.5)

(-0.5, -6.0)

 

-. 지수로그 연산

수학모듈에서 지원하는 일반적인 지수 연산과 로그연산에 관련된 함수는 아래와 같다.

>math.pow(x,y)

x y제곱결과를 반환

>>> math.pow(2,10)

1024.0

>>> pow(2,10)

1024

>>> 2**10

1024

 

>math.sqrt(x)

x의 제곱근(square root)한 결과를 반환

>>> math.sqrt(2) #2연산

1.4142135623730951

>>> math.sqrt(9) #9연산

3.0

 

>math.exp(x)

자연상수(e) x제곱결과를 반환

>>> math.exp(2)

7.38905609893065

 

>math.log(x[, base])

밑을 base로 하는 log X의 결과를 반환

만약 base가 입력되지 않으면자연로그(ln X)로 연산

>>> math.log(math.e) #'ln e'연산

1.0

 

-. 삼각함수 연산

각도를 표기하는 기법으로 60분법과 라디안(radian)이 있다이에 대한 상호 변환함수는 아래와 같다.

>math.degrees(x)

라디안으로 표현된 각도를 60분법으로 변환

 

>math.radians(x)

60분법으로 표현된 각도를 라디안으로 변환

 

아래는 파이썬에서 주로 사요ㅇ되는 삼각함수이다.

>math.sin(x)

>math.asin(x)

>math.cosh(x)

>math.asinh(x)

>math.cos(x)

>math.atan(x)

>math.sinh(x)

>math.atanh(x)

>math.tan(x)

>math.acos(x)

>math.tanh(x)

>math.acosh(x)

 

삼각함수의 사용방법에 대한 예

>>> r = math.radians(30) #30도를 라디안으로 변환

>>> math.sin(r) #sin(30)연산

0.49999999999999994

>>> r = math.radians(180) #180도를 라디안으로 변환

>>> v = math.cos(r)

>>> v

-1.0

>>> r == math.acos(v) #cos() acos()으로 수행한 값을 상호비교

True

>>> math.degrees(r) #π 라디안을 60분법으로 변환

180.0

 

※ 위의 예제에서 sin(30)가 정확히 0.5가 아닌 0.49999999999999994로 출력되는것은 컴퓨터에서 부동소소줌을 표현하는 방식때문에 발생하는 문제이다이에 대해서는 이후에 나오는 십진법모듈에서 자세히 알아보도록 하겠다.

 

 

참조 : 빠르게 활용하는 파이썬프로그래밍

'Python' 카테고리의 다른 글

Python,module decimal [십진법]  (0) 2016.05.19
Python,module fractions [분수]  (0) 2016.05.19
Python,module datetime [날짜시간]  (0) 2016.05.17
Python,module time [시간]  (0) 2016.05.17
Python, pickle  (0) 2016.05.17
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함