나눗셈에 사용할 때 '/'와 '//'의 차이점은 무엇입니까?
하나를 사용하면 다른 하나를 사용할 수 있는 장점이 있나요?Python 2 에서는, 양쪽 모두 같은 결과를 반환하고 있는 것 같습니다.
>>> 6/3
2
>>> 6//3
2
3. Python 3.x의 5 / 2
2.5
★★★★★★★★★★★★★★★★★」5 // 2
2
전자는 부동소수점 분할이고 후자는 바닥 분할이며 정수 분할이라고도 합니다.
2.2 에서는 2.x "Python 2.2", "Python 2.2", "Python 2.2", "Python", "Python"을 실행하지 않는 한 .from __future__ import division
Python 2.x, 3.x, 3.x, Python 2.x, Python 3.x, Python 3.x, Python 3.x, Python 2.x.x.
Import에 , 「 」의 「 」에 관계없이,5.0 // 2
2.0
바닥이 갈라진 수술 결과니까요
자세한 설명은 PEP 238: Changing the Division Operator(분할 연산자 변경)에서 확인할 수 있습니다.
Python 2.x 설명:
2.행에 는, Python 2.x 를 참조해 ./
바닥 분할도 아니고 진짜 분할도 아닙니다.
/
두 Arg가 모두 바닥 분할은 양쪽 Arg가int
단, 어느 하나의 arg가 다음과 같은 경우 진정한 나눗셈이 됩니다.float
.
//
는, 타입에 관계없이 「플로어 분할」을 실장합니다. ★★★★★★★★★★★★★★★★★.1.0/2.0
주다0.5
, 둘 다1/2
,1//2
★★★★★★★★★★★★★★★★★」1.0//2.0
주다0
.
자세한 내용은 PEP 238: 분할 연산자의 변경을 참조하십시오.
/ → 부동소수점 분할
// → 바닥 분할
Python 2.7과 Python 3.5의 예를 보겠습니다.
Python 2.7.10과파이썬 3.5
print (2/3) ----> 0 Python 2.7
print (2/3) ----> 0.6666666666666666 Python 3.5
Python 2.7.10과파이썬 3.5
print (4/2) ----> 2 Python 2.7
print (4/2) ----> 2.0 Python 3.5
Python 2.7에서 Python 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
반면 Python 2.7과 Python 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
다들 이미 대답했듯이//
플로어 분할입니다.
왜 '이렇게'는//
는 Python 3.x 버전을 포함한 2.2 이후의 모든 Python 버전에서 명확하게 플로어 분할입니다.
의 /
수 .
- 한 「」
__future__
import(syslog-local) - Python 명령줄 옵션)
-Q old
★★★★★★★★★★★★★★★★★」-Q new
>>> print 5.0 / 2
2.5
>>> print 5.0 // 2
2.0
Python 2.7 및 기타 향후 Python 버전:
- Division)
/
)
왼쪽 피연산자를 오른쪽 피연산자로 나눕니다.
::4 / 2 = 2
- 플로어 디비전(
//
)
피연산자의 나눗셈.여기서 결과는 소수점 뒤의 자릿수가 삭제되는 비율입니다.그러나 피연산자 중 하나가 음수인 경우 결과는 플로어됩니다. 즉, 0에서 반올림됩니다(음수 무한대 방향).
::9//2 = 4
★★★★★★★★★★★★★★★★★」9.0//2.0 = 4.0
,-11//3 = -4
,-11.0//3 = -4.0
다./
과 눗눗//
플로어 디비전 오퍼레이터도 비슷한 방식으로 운영되고 있습니다.
슬래시, ,,,,,,, ,,, the the, the the,//
다음 중 하나:
>>> 7//3
2
//
플로어 분할입니다.항상 결과의 정수 바닥을 제공합니다.'먹다
앞의 답변이 좋습니다.한 가지 더 덧붙이고 싶습니다.어떤 값까지는 두 값 모두 같은 지수를 얻을 수 있습니다.플로어 디비전 오퍼레이터 이후(//
분할은 되지 분할」, 「분할」)./
)는 다음과 같습니다.
>>> int(755349677599789174 / 2) # Wrong answer
377674838799894592
>>> 755349677599789174 // 2 # Correct answer
377674838799894587
방정식의 답은 소수점으로서 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
요약
- x//y : EXCRUCT 정수 나눗셈
- int(x/y) 또는 math.floor(x/y): INRECT 정수 나눗셈(그러나 거의 정확함)
- x/y: 부동소수점 나눗셈(중요도 손실이 있음)
주목할 만한 계산 결과
import math
N = 1004291331219602346 # huge number
print(N//100) #=> 10042913312196023 is correct answer
print(math.floor(N/100)) #=> 10042913312196024 is wrong answer
print(math.ceil(N/100)) #=> 10042913312196024 is wrong answer
print(int(N/100)) #=> 10042913312196024 is wrong answer
고려 사항
가 생각하는 입니다.int(x/y)
.
Python은 Python이라는 표현을 합니다.x/y
인크랙트 z자
둘째, Python은 다음 식을 평가합니다.int(z)
.
중요성의 상실을 무시할 수 없을 때 우리는 잘못된 결과를 얻는다.
Python 3.x의 설명
이전의 몇 가지 답변을 보완하기 위해서입니다.
주의할 점은 다음과 같습니다.
a// b
층 구분입니다.예:
math.floor(a/b)
int division이 아닙니다.예:
int(a/b)
0 플로트 나눗셈으로 반올림하지 않습니다.예:
라운드(a/b,0)
그 결과, 다음의 예와 같이, 음의 숫자에 대해서는, 동작 방법이 다릅니다.
1 // 2는 0입니다.다음과 같습니다.
math.floor(1/2)
-1 // 2는 -1입니다.다음과 같습니다.
math.floor (1/2)
파이썬 3
작동 결과 메모들 x / y
x와 y의 몫 x // y
x와 y의 플로어 계수 (1) 주의:
- 정수 나눗셈이라고도 합니다.결과 유형은 반드시 int일 필요는 없지만 결과 값은 정수입니다.는 항상 됩니다.
1//2
0
,(-1)//2
-1
,1//(-2)
-1
, , , , 입니다.(-1)//(-2)
0
.
파이썬 2
작동 결과 메모들 x / y
x와 y의 몫 (1) x // y
(바닥) x와 y의 몫 (4)(5) 주의:
(1) (일반 또는 긴) 정수 나눗셈의 경우 결과는 정수이다.결과는 항상 마이너스 무한대로 반올림됩니다. 1/2는 0, (-1)/2는 -1, 1/(-2)는 -1, (-1)/(-2)는 0입니다.피연산자 중 하나가 긴 정수일 경우 숫자 값에 관계없이 결과는 긴 정수입니다.
4. 버전 2.3 이후 폐지: 바닥 분할 연산자, 모듈로 연산자 및 함수는 복소수에 대해 정의되지 않습니다.대신 적절한 경우 함수를 사용하여 부동소수점 숫자로 변환하십시오. 5. 정수 나눗셈이라고도 합니다.결과 유형은 반드시 int일 필요는 없지만 결과 값은 정수입니다.
//
플로어 분할입니다.항상 결과의 바닥값을 제공합니다.- 그리고 다른 것도.
/
는 부동소수점 분할입니다.
은 래는는의의 in 의 차이입니다./
★★★★★★★★★★★★★★★★★」//
Python 3.7.2는 Python 3.7.2를 사용합니다.
>>> print (11 / 3)
3.6666666666666665
>>> print (11 // 3)
3
>>> print (11.3 / 3)
3.7666666666666667
>>> print (11.3 // 3)
3.0
5.0//2
이 되다2.0
가 2
에서의 반환값의 반환유형은//
파이썬
Python은 데이터 손실을 방지하기 위해 낮은 데이터 유형(정수)을 높은 데이터 유형(플로트)으로 변환합니다.
언급URL : https://stackoverflow.com/questions/183853/what-is-the-difference-between-and-when-used-for-division
'programing' 카테고리의 다른 글
C에서 실행 파일을 생성하시겠습니까? (0) | 2022.11.27 |
---|---|
원칙 2 및 추가 필드가 있는 다대다 링크 테이블 (0) | 2022.11.27 |
대소문자를 구분하지 않는 문자열 비교 (0) | 2022.11.27 |
jQuery 함수(새로운 jQuery 메서드 또는 플러그인)를 만드는 방법 (0) | 2022.11.27 |
Regex 플러스 대 스타의 차이? (0) | 2022.11.27 |