>  기사  >  백엔드 개발  >  Python 2와 Python 3의 음의 정수 나눗셈의 차이점은 무엇입니까?

Python 2와 Python 3의 음의 정수 나눗셈의 차이점은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-24 10:45:02198검색

What's the Difference in Negative Integer Division between Python 2 and Python 3?

Python의 까다로운 음수 나누기

애플리케이션 작업 중 정수 나누기의 놀라운 결과가 의문을 불러일으켰습니다. 8을 -7로 나누면 결과는 정수값인 -2가 됩니다. 이 현상을 이해하기 위해 정수 나누기의 복잡성을 자세히 살펴보겠습니다.

정수 나누기 vs. 실제 나누기

Python 2는 "/"로 표시되는 정수 나누기를 사용합니다. 그 결과는 정수 몫이 됩니다. 음의 정수를 나눌 때 몫은 더 음의 값으로 반올림됩니다(바닥 나누기). 이는 실제 값이 -1.143에 더 가깝더라도 8/-7이 -2로 잘린다는 것을 의미합니다.

Python 3 재검토

이러한 모호성을 피하기 위해, Python 3에서는 두 피연산자가 모두 정수가 아닌 한 항상 부동 소수점 값을 생성하는 진정한 나누기를 도입했습니다. 이는 수학적 나누기와 일치하며 피연산자를 부동 소수점으로 수동으로 변환할 필요가 없습니다. 따라서 Python 3의 8/-7은 -1.143으로 올바르게 평가됩니다.

Python 3의 정수 나누기

Python 3에서 여전히 정수 나누기가 필요한 경우, // 연산자를 사용할 수 있습니다. Python 2의 정수 나누기와 유사하게 몫을 음의 무한대로 반올림합니다.

역사적 맥락

Python 2의 정수 나누기 동작은 과거 프로그래밍 언어의 영향을 받았습니다. 수학적 규범을 반영하지 않습니다. Python 3에서는 대부분의 개발자의 기대에 맞춰 진정한 분할을 도입하여 이 문제를 해결했습니다.

추가 리소스

이 주제에 대한 자세한 내용은 Python Enhancement를 참조하세요. 나눗셈 연산자 변경에 관한 제안 238(PEP 238):

[PEP 238 -- 나눗셈 연산자 변경](https://www.python.org/dev/peps/pep-0238/ )

위 내용은 Python 2와 Python 3의 음의 정수 나눗셈의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.