Python Language
간단한 수학 연산자
수색…
소개
비고
수치 형과 그 메타 클래스
numbers
모듈에는 숫자 유형에 대한 추상 메타 클래스가 포함되어 있습니다.
서브 클래스들 | 번호. 번호 | 숫자. | 합리적인 | 진짜. | numbers.Complex |
---|---|---|---|---|---|
불량배 | ✓ | ✓ | ✓ | ✓ | ✓ |
int | ✓ | ✓ | ✓ | ✓ | ✓ |
분수. 분수 | ✓ | - | ✓ | ✓ | ✓ |
흙손 | ✓ | - | - | ✓ | ✓ |
복잡한 | ✓ | - | - | - | ✓ |
decimal.Decimal | ✓ | - | - | - | - |
부가
a, b = 1, 2
# Using the "+" operator:
a + b # = 3
# Using the "in-place" "+=" operator to add and assign:
a += b # a = 3 (equivalent to a = a + b)
import operator # contains 2 argument arithmetic functions for the examples
operator.add(a, b) # = 5 since a is set to 3 right before this line
# The "+=" operator is equivalent to:
a = operator.iadd(a, b) # a = 5 since a is set to 3 right before this line
가능한 조합 (내장 유형) :
-
int
및int
(AN 제공int
) -
int
및float
(a 제공float
) -
int
와complex
(a 제공complex
) -
float
와float
(a 제공float
) -
float
및complex
(a 제공complex
) -
complex
및complex
(a 제공complex
)
참고 : +
연산자는 문자열, 목록 및 튜플을 연결하는데도 사용됩니다.
"first string " + "second string" # = 'first string second string'
[1, 2, 3] + [4, 5, 6] # = [1, 2, 3, 4, 5, 6]
빼기
a, b = 1, 2
# Using the "-" operator:
b - a # = 1
import operator # contains 2 argument arithmetic functions
operator.sub(b, a) # = 1
가능한 조합 (내장 유형) :
-
int
및int
(AN 제공int
) -
int
및float
(a 제공float
) -
int
와complex
(a 제공complex
) -
float
와float
(a 제공float
) -
float
및complex
(a 제공complex
) -
complex
및complex
(a 제공complex
)
곱셈
a, b = 2, 3
a * b # = 6
import operator
operator.mul(a, b) # = 6
가능한 조합 (내장 유형) :
-
int
및int
(AN 제공int
) -
int
및float
(a 제공float
) -
int
와complex
(a 제공complex
) -
float
와float
(a 제공float
) -
float
및complex
(a 제공complex
) -
complex
및complex
(a 제공complex
)
참고 : *
연산자는 문자열, 목록 및 튜플을 반복하여 연결하는 데에도 사용됩니다.
3 * 'ab' # = 'ababab'
3 * ('a', 'b') # = ('a', 'b', 'a', 'b', 'a', 'b')
분할
두 피연산자가 모두 정수인 경우 파이썬은 정수 나누기를 수행합니다. Python의 나누기 연산자의 동작은 Python 2.x와 3.x에서 변경되었습니다 ( Integer Division 참조).
a, b, c, d, e = 3, 2, 2.0, -3, 10
파이썬 2에서 '/'연산자의 결과는 분자와 분모의 유형에 따라 다릅니다.
a / b # = 1
a / c # = 1.5
d / b # = -2
b / a # = 0
d / e # = -1
a
와 b
는 모두 int
이므로 결과는 int
입니다.
결과는 항상 반 내림 (바닥)됩니다.
c
는 float이므로 a / c
의 결과는 float
입니다.
연산자 모듈을 사용할 수도 있습니다.
import operator # the operator module provides 2-argument arithmetic functions
operator.div(a, b) # = 1
operator.__div__(a, b) # = 1
부유 분할을 원할 경우 :
권장 사항 :
from __future__ import division # applies Python 3 style division to the entire module
a / b # = 1.5
a // b # = 1
좋아요 (전체 모듈에 적용하고 싶지 않은 경우) :
a / (b * 1.0) # = 1.5
1.0 * a / b # = 1.5
a / b * 1.0 # = 1.0 (careful with order of operations)
from operator import truediv
truediv(a, b) # = 1.5
권장하지 않음 (예 : 인수가 복잡한 경우 TypeError가 발생할 수 있음) :
float(a) / b # = 1.5
a / float(b) # = 1.5
Python 2의 '//'연산자는 유형에 관계없이 바닥 분할을 수행합니다.
a // b # = 1
a // c # = 1.0
파이썬 3에서 /
연산자는 유형에 관계없이 '참'나누기를 수행합니다. //
연산자는 바닥 나누기를 수행하고 유형을 유지 관리합니다.
a / b # = 1.5
e / b # = 5.0
a // b # = 1
a // c # = 1.0
import operator # the operator module provides 2-argument arithmetic functions
operator.truediv(a, b) # = 1.5
operator.floordiv(a, b) # = 1
operator.floordiv(a, c) # = 1.0
가능한 조합 (내장 유형) :
-
int
와int
(파이썬 2에서는int
를, 파이썬 3에서는float
를 제공) -
int
및float
(a 제공float
) -
int
와complex
(a 제공complex
) -
float
와float
(a 제공float
) -
float
및complex
(a 제공complex
) -
complex
및complex
(a 제공complex
)
자세한 내용은 PEP 238 을 참조하십시오.
지수
a, b = 2, 3
(a ** b) # = 8
pow(a, b) # = 8
import math
math.pow(a, b) # = 8.0 (always float; does not allow complex results)
import operator
operator.pow(a, b) # = 8
내장 pow
와 math.pow
의 또 다른 차이점은 내장 pow
가 3 개의 인수를 허용한다는 것입니다.
a, b, c = 2, 3, 2
pow(2, 3, 2) # 0, calculates (2 ** 3) % 2, but as per Python docs,
# does so more efficiently
특수 기능
함수 math.sqrt(x)
는 x
제곱근을 계산합니다.
import math
import cmath
c = 4
math.sqrt(c) # = 2.0 (always float; does not allow complex results)
cmath.sqrt(c) # = (2+0j) (always complex)
큐브 루트와 같은 다른 루트를 계산하려면 루트의 차수의 역수로 숫자를 올립니다. 이것은 지수 함수 또는 연산자를 사용하여 수행 할 수 있습니다.
import math
x = 8
math.pow(x, 1/3) # evaluates to 2.0
x**(1/3) # evaluates to 2.0
함수 math.exp(x)
e ** x
계산합니다.
math.exp(0) # 1.0
math.exp(1) # 2.718281828459045 (e)
math.expm1(x)
함수는 e ** x - 1
계산합니다. x
가 작 으면 math.exp(x) - 1
보다 훨씬 뛰어난 정밀도를 제공합니다.
math.expm1(0) # 0.0
math.exp(1e-6) - 1 # 1.0000004999621837e-06
math.expm1(1e-6) # 1.0000005000001665e-06
# exact result # 1.000000500000166666708333341666...
로그
기본적으로 math.log
함수는 숫자의 대수 (기본 e)를 계산합니다. 선택적으로 두 번째 인수로 기본을 지정할 수 있습니다.
import math
import cmath
math.log(5) # = 1.6094379124341003
# optional base argument. Default is math.e
math.log(5, math.e) # = 1.6094379124341003
cmath.log(5) # = (1.6094379124341003+0j)
math.log(1000, 10) # 3.0 (always returns float)
cmath.log(1000, 10) # (3+0j)
다양한 기반에 대해 math.log
함수의 특수한 변형이 존재합니다.
# Logarithm base e - 1 (higher precision for low values)
math.log1p(5) # = 1.791759469228055
# Logarithm base 2
math.log2(8) # = 3.0
# Logarithm base 10
math.log10(100) # = 2.0
cmath.log10(100) # = (2+0j)
내부 운영
응용 프로그램 내에서 다음과 같은 코드가 필요할 때가 많습니다.
a = a + 1
또는
a = a * 2
이러한 장소 작업에 대한 효과적인 바로 가기가 있습니다.
a += 1
# and
a *= 2
모든 수학 연산자는 '='문자 앞에 사용하여 inplace 연산을 수행 할 수 있습니다.
-
-=
해당 변수를 감소시킵니다. -
+=
변수를 적절한 위치에 증가시킵니다. -
*=
해당 위치에 변수를 곱하십시오. -
/=
변수를 제 위치에 나눕니다. -
//=
바닥은 변수를 # 파이썬 3으로 나눕니다. -
%=
변수의 모듈러스를 제자리에 반환합니다. -
**=
제자리에서 힘을 키우다
비트 연산자 ( ^
, |
등)에는 다른 연산자가 있습니다.
삼각 함수
a, b = 1, 2
import math
math.sin(a) # returns the sine of 'a' in radians
# Out: 0.8414709848078965
math.cosh(b) # returns the inverse hyperbolic cosine of 'b' in radians
# Out: 3.7621956910836314
math.atan(math.pi) # returns the arc tangent of 'pi' in radians
# Out: 1.2626272556789115
math.hypot(a, b) # returns the Euclidean norm, same as math.sqrt(a*a + b*b)
# Out: 2.23606797749979
math.hypot(x, y)
는 원점(0, 0)
에서 점(x, y)
까지의 벡터 길이 (또는 유클리드 거리)이기도합니다.두 점
(x1, y1)
과(x2, y2)
사이의 유클리드 거리를 계산하려면 다음과 같이math.hypot
을 사용할 수 있습니다math.hypot(x2-x1, y2-y1)
라디안 ->도 및도 -> 라디안으로 변환하려면 각각 math.degrees
및 math.radians
math.degrees(a)
# Out: 57.29577951308232
math.radians(57.29577951308232)
# Out: 1.0
모듈러스
다른 많은 언어들과 마찬가지로, 파이썬은 모듈러스 계산에 %
연산자를 사용합니다.
3 % 4 # 3
10 % 2 # 0
6 % 4 # 2
또는 operator
모듈을 사용하여 :
import operator
operator.mod(3 , 4) # 3
operator.mod(10 , 2) # 0
operator.mod(6 , 4) # 2
음수를 사용할 수도 있습니다.
-9 % 7 # 5
9 % -7 # -5
-9 % -7 # -2
정수 나눗셈과 모듈러스의 결과를 찾아야하는 경우 divmod
함수를 바로 가기로 사용할 수 있습니다.
quotient, remainder = divmod(9, 4)
# quotient = 2, remainder = 1 as 4 * 2 + 1 == 9