파이썬 2.7과 파이썬 3의 나눗셈 차이

이 포스트에서는 파이썬 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

위와 같이 나눗셈 연산자를 두 개 연속으로(//) 붙여서 쓰면 소수점 이하는 버려지게 됩니다.

답글 남기기

이메일 주소는 공개되지 않습니다.