이 포스트에서는 파이썬 2.7과 파이썬 3에서의 나눗셈의 차이점을 설명합니다.
5를 2로 나누는 식을 파이썬 2.7과 파이썬 3에서 함께 시도해 봅시다.
먼저, 파이썬 2.7에서 시도해 봅시다.
>>> print 5 / 2 2
그 다음은 파이썬 3에서 시도해 봅시다.
>>> print(5 / 2) 2.5
둘 다 똑같이 5를 2로 나누었는데 파이썬 2.7에서는 2를 출력하였지만 파이썬 3에서는 2.5를 출력하였습니다. 그 이유는 원래 파이썬에서는 정수를 정수로 나누어서 정수로 나누어 떨어지지 않을 경우 소수점을 버려서 정수형을 유지하게 되어 있었기 때문입니다. 예를 들어, 이 예제처럼 5를 2로 나눌 경우 2.5가 되는데 정수를 정수로 나눠서 정수형을 유지해야 하므로 뒤의 .5는 버려져서 2가 되는 것입니다.
만약에 파이썬 2.7에서 정수를 정수로 나눠서 소수가 나오게 하려면,
>>> print 5.0 / 2 2.5 >>> print 5 / 2.0 2.5 >>> print 5.0 / 2.0 2.5
이와 같이 제수와 피제수 중 한 쪽이나 두 쪽 모두에 .0을 붙여 소수형으로 만들어 나누는 방법이 있습니다.
하지만 파이썬 3에서는 정수를 정수로 나누어서 정수로 나누어 떨어지지 않을 경우는 자동으로 소수형으로의 형변환이 이루어져 소수점이 있는 값을 돌려줍니다. 예를 들어, 이 예제처럼 5를 2로 나눌 경우 2.5가 되면서 결과값이 자동으로 소수형으로의 형변환이 이루어져 2.5를 그대로 돌려주게 되는 것입니다.
한편, 파이썬 3에서도 다음과 같이 정수 나눗셈을 할 수 있습니다.
>>> print(5 / 2) 2.5 >>> print(5 // 2) 2
위와 같이 나눗셈 연산자를 두 개 연속으로(//) 붙여서 쓰면 소수점 이하는 버려지게 됩니다.