먼저 내장함수 pow() 와 math.pow() 는 다음과 같이 다른 함수임을 알 수 있다.
import math
print(pow is math.pow)
# >>> False
파이썬에서 제곱을 구하는 세가지 방법의 차이를 비교해보자.
1. 내장함수 pow(base, exp [, mod] )
[특징 1] 밑, 지수, (옵션: 나머지계산) 을 파라미터로 받을 수 있다.
--> math.pow에서는 세번째 옵션 파라미터를 받을 수 없다.
--> pow(base, exp, mod) 로 쓰였을 때, 결과는 (base ** exp) % mod 와 동일하다.
(단, 이때 base, exp는 정수형이어야함)
[특징 2] pow의 결과값은 파라미터의 type에 따라 결정된다.
print(pow(12,2)) # >>> 144
print(pow(12.0,2)) # >>> 144.0
print(pow(12,2.0)) # >>> 144.0
2. math.pow(base, exp)
[특징 1] math.pow의 결과값은 항상 float이다.
import math
print(math.pow(12,2)) # >>> 144.0
print(math.pow(12.0,2)) # >>> 144.0
print(math.pow(12,2.0)) # >>> 144.0
3. base ** exp
--> 결과는 위 두 함수와 동일하나, 성능 측면에서 가장 속도가 빠르다.
( 결과 값 type은 base, exp의 타입에 따라 결정됨)
[참고] taejin0527.github.io/[object%20Object]/PY-pow-vs-mathpow/
'Language > Python' 카테고리의 다른 글
[Python] 4_클래스 (0) | 2021.05.06 |
---|---|
[Python] 파이썬에서 음수의 "//" 연산(Floor Division) 이 다른 값을 가지는 이유 (0) | 2021.05.06 |
[Python] 3_함수 (0) | 2021.05.03 |
[Python] 2_제어문 (0) | 2021.05.02 |
[Python] 1_자료형 (0) | 2021.04.29 |