[PYTHON] 나누기에 사용할 때 '/'와 '//'의 차이점은 무엇입니까?
PYTHON나누기에 사용할 때 '/'와 '//'의 차이점은 무엇입니까?
하나를 다른 것에 사용하면 이점이 있습니까? 파이썬 2에서는 둘 다 똑같은 결과를 반환합니다.
>>> 6/3
2
>>> 6//3
2
해결법
-
==============================
1.파이썬 3.0에서는 5 / 2가 2.5를 반환하고 5 / 2가 2를 반환합니다. 전자는 부동 소수점 나누기이고, 후자는 바닥 나누기이며 정수 나누기라고도합니다.
파이썬 3.0에서는 5 / 2가 2.5를 반환하고 5 / 2가 2를 반환합니다. 전자는 부동 소수점 나누기이고, 후자는 바닥 나누기이며 정수 나누기라고도합니다.
2.x 라인의 Python 2.2 또는 이후 버전에서는 __future__ import division을 수행하지 않는 한 정수에는 차이가 없습니다. 이로 인해 Python 2.x는 3.0의 비헤이비어를 채택합니다
향후 가져 오기에 관계없이 5.0 / 2는 작업의 바닥 나누기 결과이므로 2.0을 반환합니다.
자세한 설명은 https://docs.python.org/whatsnew/2.2.html#pep-238-changing-the-division-operator에서 확인할 수 있습니다.
-
==============================
2.파이썬 2.x 라인을 명확히하는 데 도움이된다. /는 플로어 나누기 나 실제 나누기가 아니다. 현재 받아 들여진 답변은 이에 대해 명확하지 않습니다. /는 두 arg가 모두 int 일 때 floor division이지만, args 중 하나 또는 둘 모두가 float 일 때 true division입니다.
파이썬 2.x 라인을 명확히하는 데 도움이된다. /는 플로어 나누기 나 실제 나누기가 아니다. 현재 받아 들여진 답변은 이에 대해 명확하지 않습니다. /는 두 arg가 모두 int 일 때 floor division이지만, args 중 하나 또는 둘 모두가 float 일 때 true division입니다.
위의 내용은 더 많은 진실을 말하고, 수용된 대답의 두 번째 단락보다 훨씬 더 명확합니다.
-
==============================
3.// 유형에 관계없이 "floor division"을 구현합니다. 그래서 1.0 / 2.0에서는 0.5가되지만 1/2, 1 // 2 및 1.0 // 2.0에서는 0이됩니다.
// 유형에 관계없이 "floor division"을 구현합니다. 그래서 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를 참조하십시오.
-
==============================
4./ -> 부동 소수점 나누기
/ -> 부동 소수점 나누기
// -> 층 구분
파이썬 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
이제 (파이썬 2.7에서) 파이썬 3.5에서와 같은 출력을 원한다면 다음을 할 수 있습니다 :
파이썬 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
-
==============================
5.모두가 이미 대답 했으므로 //은 층 분리입니다.
모두가 이미 대답 했으므로 //은 층 분리입니다.
중요한 이유는 Python 3.x 버전을 포함하여 2.2의 모든 Python 버전에서 명확하게 바닥 분할이된다는 것입니다.
/의 동작은 다음에 따라 달라질 수 있습니다.
-
==============================
6.
>>> print 5.0 / 2 2.5 >>> print 5.0 // 2 2.0
-
==============================
7.**
**
** / 부문 오른손 피연산자로 왼손 피연산자를 나눕니다. 전의:: 4 / 2 = 2
Floor Division (//) - 소수점 이하 자릿수가 제거 된 몫인 결과 인 피연산자의 나눗셈입니다. 그러나 피연산자 중 하나가 음수이면 결과는 바닥에 표시됩니다 (즉, 0부터 반올림 됨). 예 : 9 // 2 = 4 및 9.0 // 2.0 = 4.0, -11 // 3 = -4, -11.0 // 3 = -4.0
/ Division 및 // Floor Division Operator 모두 유사한 방식으로 작동합니다.
-
==============================
8.이중 슬래시 (//)는 바닥 구분입니다.
이중 슬래시 (//)는 바닥 구분입니다.
>>> 7//3 2
-
==============================
9.방정식의 답은 다음 더 작은 정수로 반올림되거나 소수점으로 .0으로 부동됩니다.
방정식의 답은 다음 더 작은 정수로 반올림되거나 소수점으로 .0으로 부동됩니다.
>>>print 5//2 2 >>> print 5.0//2 2.0 >>>print 5//2.0 2.0 >>>print 5.0//2.0 2.0
-
==============================
10.//는 바닥 구분이며, 항상 결과의 정수 바닥을 제공합니다. 다른 하나는 '정규'부서입니다.
//는 바닥 구분이며, 항상 결과의 정수 바닥을 제공합니다. 다른 하나는 '정규'부서입니다.
-
==============================
11.5.0 // 2는 2.0에서 발생하지만, // 연산자의 반환 값 유형이 파이썬 강제 변환 (형식 변환) 규칙을 따르므로 2가 아닙니다.
5.0 // 2는 2.0에서 발생하지만, // 연산자의 반환 값 유형이 파이썬 강제 변환 (형식 변환) 규칙을 따르므로 2가 아닙니다.
파이썬은 데이터 손실을 피하기 위해 낮은 데이터 유형 (정수)에서 높은 데이터 유형 (부동)으로의 변환을 촉진합니다.
from https://stackoverflow.com/questions/183853/what-is-the-difference-between-and-when-used-for-division by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 어떻게 아마존 웹 서비스에서 boto3에서 URL을 생성하는 (0) | 2018.11.13 |
---|---|
[PYTHON] 파이썬에서 고유 한 키로 사전으로 구성된 2 개의 목록 비교 (0) | 2018.11.13 |
[PYTHON] 파이썬 컴파일 된 확장 기능을위한 PyCharm 자동 완성 (0) | 2018.11.13 |
[PYTHON] 사전 조회를 사용하여 목록의 요소를 대체하는 방법 (0) | 2018.11.13 |
[PYTHON] 팬더 / 데이터 프레임을 사용하여 가중 평균 계산 (0) | 2018.11.13 |