더북(TheBook)

Q. 거듭제곱 연산자 **는 음수에 어떻게 작동하는가?

A. 직접 실행해 보길 권한다. 이때, ** 연산자는 왼쪽에 있는 단항 연산자(+, -)보다 우선순위가 높지만 오른쪽에 있는 단항 연산자(+, -)보다는 우선순위가 낮다는 점에 주의하라. 예를 들어 -3**481이 아니라 -81로 평가된다. 그리고 평가한 결과로 생성된 객체와 피연산자의 형이 다를 수 있음에 주의하라. 예를 들어 10**-2는 실수 0.01이 되고, (-10)**(10**-2)는 파이썬 3에서 복소수가 된다(그러나 파이썬 2에서는 실행 오류가 발생한다).

Q. 10^61000000이 아니라 12가 되는 이유는?

A. ^ 연산자를 거듭제곱 연산자로 생각하기 쉽지만, 파이썬에서 ^ 연산자는 거듭제곱 연산을 나타내지 않고, 논리적 배타합(XOR)을 나타낸다. ^ 연산자는 이 책에서는 사용하지 않는다. 리터럴 1000000이 필요할 때는 표현식 10**6을 사용할 수 있지만, 리터럴을 사용해도 되는 곳에 표현식을 사용하면 실행 시 컴퓨터의 처리 능력을 소모하게 만든다.

파이썬 2에서의 정수 | 파이썬 2에서는 int(작은 수)와 long(큰 수), 두 가지 정수형을 지원한다. 파이썬 2에서는 필요에 따라 자동으로 intlong으로 승격시킨다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.