답변:
파이썬 3.x의에서, 5 / 2
반환 2.5
및 5 // 2
반환합니다 2
. 전자는 부동 소수점 나누기이고 후자는 플로어 나누기 이며 때로는 정수 나누기 라고도 합니다 .
2.x 행의 Python 2.2 이상에서는을 수행하지 않으면 정수에 차이가 없으므로 from __future__ import division
Python 2.x가 3.x 동작을 채택합니다.
향후 수입에 관계없이 운영의 층 분할 결과이기 때문에 5.0 // 2
반환 2.0
됩니다.
자세한 설명은 https://docs.python.org/whatsnew/2.2.html#pep-238-changing-the-division-operator 에서 확인할 수 있습니다.
python -Qnew
. 다른 분할 옵션 : -Qold
(기본값) -Qwarn
,-Qwarnall
5.0 / 2
반환 2.5
되는 것을 지적 할 가치 가 있습니다 5 / 2.0
. 이전의 동작은 두 피연산자가 모두 다를 때만 다릅니다 int
.
//
유형에 관계없이 "바닥 구분"을 구현합니다. 그래서
1.0/2.0
줄 것이다 0.5
, 그러나 모두 1/2
, 1//2
그리고 1.0//2.0
줄 것이다 0
.
자세한 내용은 https://docs.python.org/whatsnew/2.2.html#pep-238-changing-the-division-operator 를 참조하십시오.
math.floor()
하거나 math.fmod()
당신이하지 않으면 반드시 무슨 일이 단항 연산자에 대한 것입니다.
/
및 //
양방향 어림 사업자 (두 개의 피연산자, 왼쪽과 오른쪽, 분자와 분모)이다
/ -> 부동 소수점 나누기
// -> 층 구분
파이썬 2.7과 파이썬 3.5 둘 다에서 몇 가지 예를 봅시다.
파이썬 2.7.10 대 파이썬 3.5
print (2/3) ----> 0 Python 2.7
print (2/3) ----> 0.6666666666666666 Python 3.5
파이썬 2.7.10 대 파이썬 3.5
print (4/2) ----> 2 Python 2.7
print (4/2) ----> 2.0 Python 3.5
이제 python 3.5에서와 동일한 출력을 원한다면 (파이썬 2.7에서) 다음을 수행 할 수 있습니다.
파이썬 2.7.10
from __future__ import division
print (2/3) ----> 0.6666666666666666 #Python 2.7
print (4/2) ----> 2.0 #Python 2.7
파이썬 2.7과 파이썬 3.5에서 바닥 구분 사이에 차이가없는 곳
138.93//3 ---> 46.0 #Python 2.7
138.93//3 ---> 46.0 #Python 3.5
4//3 ---> 1 #Python 2.7
4//3 ---> 1 #Python 3.5
-100 // 33
100 // -33
-100 // -33
모두가 이미 대답했듯이 //
바닥 구분입니다.
이것이 중요한 이유는 //
Python 3.x 버전을 포함하여 2.2의 모든 Python 버전에서 분명하게 구분되어 있기 때문 입니다.
의 동작은 /
다음에 따라 변경 될 수 있습니다.
__future__
가져 오기 여부 (모듈 로컬)-Q old
또는-Q new
파이썬 2.7과 다가오는 파이썬 버전 :
/
)왼쪽 피연산자를 오른쪽 피연산자로 나눕니다.
예: 4 / 2 = 2
//
)결과가 소수점 이하의 숫자가 제거되는 몫인 피연산자의 나눗셈입니다. 그러나 피연산자 중 하나가 음수이면 결과는 바닥입니다. 즉, 0에서 반올림됩니다 (음의 무한대로).
예 : 9//2 = 4
와 9.0//2.0 = 4.0
, -11//3 = -4
,-11.0//3 = -4.0
두 /
부문 및 //
바닥 나누기 연산자는 비슷한 방식으로 운영된다.
//
층 구분이며 항상 결과의 층 값을 제공합니다./
는 부동 소수점 나누기입니다.다음과의 차이점은 다음 /
과 같습니다 //
. 파이썬 3.7.2에서 이러한 산술 연산을 실행했습니다.
>>> print (11 / 3)
3.6666666666666665
>>> print (11 // 3)
3
>>> print (11.3 / 3)
3.7666666666666667
>>> print (11.3 // 3)
3.0
//
연산자를 소개하는 이유는 정수 나누기 문제를 참조하십시오 .