Q. 거듭제곱 연산자 **
는 음수에 어떻게 작동하는가?
A. 직접 실행해 보길 권한다. 이때, **
연산자는 왼쪽에 있는 단항 연산자(+
, -
)보다 우선순위가 높지만 오른쪽에 있는 단항 연산자(+
, -
)보다는 우선순위가 낮다는 점에 주의하라. 예를 들어 -3**4
는 81
이 아니라 -81
로 평가된다. 그리고 평가한 결과로 생성된 객체와 피연산자의 형이 다를 수 있음에 주의하라. 예를 들어 10**-2
는 실수 0.01
이 되고, (-10)**(10**-2)
는 파이썬 3에서 복소수가 된다(그러나 파이썬 2에서는 실행 오류가 발생한다).
Q. 10^6
이 1000000
이 아니라 12
가 되는 이유는?
A. ^
연산자를 거듭제곱 연산자로 생각하기 쉽지만, 파이썬에서 ^
연산자는 거듭제곱 연산을 나타내지 않고, 논리적 배타합(XOR)을 나타낸다. ^
연산자는 이 책에서는 사용하지 않는다. 리터럴 1000000
이 필요할 때는 표현식 10**6
을 사용할 수 있지만, 리터럴을 사용해도 되는 곳에 표현식을 사용하면 실행 시 컴퓨터의 처리 능력을 소모하게 만든다.
파이썬 2에서의 정수 | 파이썬 2에서는 int
(작은 수)와 long
(큰 수), 두 가지 정수형을 지원한다. 파이썬 2에서는 필요에 따라 자동으로 int
를 long
으로 승격시킨다.