파이썬의 산술 연산자는 다음과 같은 것들이 있다.
[표 1] 파이썬의 산술 연산자들
연산자 | 기능 | 비고/용례 |
+ | 덧셈 | 11+22, a+12, a+b |
- | 뺄셈 | 11-22j - 33, a-12, a-b |
* | 곱셈 | 11*22, (33+44j)*(55-66j), a*b |
/ | 나눗셈 | 결과는 실수형이다. (2.x에서는 int / int의 결과는 int) |
// | 자리내림 나눗셈 | 피연산자가 모두 정수인 경우 나눗셈의 결과 소수점 아래는 버리고 정수만 취한다. 둘 중 하나라도 실수라면 / 연산자와 동일함. |
** | 거듭제곱 | 2**10, (1+2j)**20 |
% | 나머지 | 3%4, -10%3, 12.345%0.4 |
여기서 나눗셈의 경우 버전에 따라서 결과가 다르다. 2.x버전에서는 정수간 나눗셈의 결과는 정수였다. 즉 1/2는 0, 2/3은 1이다. 하지만 3.x버전에서는 정수간 나눗셈의 결과는 나누어 떨어지는 경우라도 무조건 실수형이 된다. 즉, 1/2는 0.2, 6/3은 2.0이 된다. 다음 결과를 확인해 보자.
>>> 4/5>>> a,b = 11,5 #a에 11, b에 5를 대입한다.>>> b/a |
2.x버전에서는 정수끼리의 나눗셈의 결과는 정수라는 것에 유의해야 한다.
연산자 //는 두 피연산자가 모두 정수일 경우 결과값이 실수이면 소수점 아래는 버린다.
>>> 9//2 # 결과는 4 (정수) >>> 9//2.0 # 결과는 4.5(실수) |
연산자 %는 나눗셈 수행 후 정수몫을 구하고 난 나머지를 구하는 연산자이다. 다음을 확인해보라.
>>> 3%21>>> 11.5%0.20.09999999999999937>>> 11.5%0.30.10000000000000042 |
실수 연산의 경우는 결과값이 정확하지 않을 수도 있다.
연산자 **는 거듭제곱 연산자이다. 다음 연산의 예를 보자.
>>> 2**101024>>> a,c = 3,4+5j>>> c**a(-236+115j)>>> a**c(57.00434317675227-57.54567628403595j) |
위에서 복소수의 거듭제곱 c**a 는 (4+5j)*(4+5j)*(4+5j) 의 결과값을 보여준다. 파이썬에서는 복소수에 대한 산술 연산도 기본적으로 지원하므로 쉽게 수행할 수 있음을 알 수 있다.
---- (이하 생략 가능) --------------------------------------------------------------------------
그렇다면 a**c는 왜 저런 결과가 나왔을까? 다음과 같이 오일러(Euler)공식을 이용하면 된다.
이 식의 결과와 위 예제의 결과는 동일하다.
'프로그래밍언어.Lib > 파이썬' 카테고리의 다른 글
파이썬 문자열의 인덱싱과 슬라이싱 (1) | 2015.05.23 |
---|---|
파이썬의 문자열 개요 (0) | 2015.05.23 |
파이썬의 숫자형 (0) | 2015.05.23 |
파이썬의 내장 자료형의 종류와 식별자 (0) | 2015.05.23 |
파이썬(python) 소개 (0) | 2015.05.23 |