티스토리 뷰
대부분의 수학관련 함수들이 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) #2의10제곱 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로 출력되는것은 컴퓨터에서 부동소소줌을 표현하는 방식때문에 발생하는 문제이다. 이에 대해서는 이후에 나오는 십진법모듈에서 자세히 알아보도록 하겠다.
참조 : 빠르게 활용하는 파이썬3 프로그래밍
'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
- indicatoron
- IdClass
- 폼
- highlightthickness
- command
- Linux
- 리눅스
- Python
- fetch join
- Module
- Private
- vba
- Java
- FetchType
- Excel
- tkinter
- onetomany
- 상수
- ManyToOne
- Composite Key
- checkbutton
- disabledforeground
- activebackground
- 파이썬
- tkinter command & bind [명령어묶기와 사건묶기] Python
- activeforeground
- JPA
- borderwidth
- highlightbackground
- apache
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |