programing

나눗셈에 사용할 때 '/'와 '//'의 차이점은 무엇입니까?

newsource 2022. 11. 27. 21:18

나눗셈에 사용할 때 '/'와 '//'의 차이점은 무엇입니까?

하나를 사용하면 다른 하나를 사용할 수 있는 장점이 있나요?Python 2 에서는, 양쪽 모두 같은 결과를 반환하고 있는 것 같습니다.

>>> 6/3
2
>>> 6//3
2

3. Python 3.x의 5 / 22.5 ★★★★★★★★★★★★★★★★★」5 // 22전자는 부동소수점 분할이고 후자는 바닥 분할이며 정수 분할이라고도 합니다.

2.2 에서는 2.x "Python 2.2", "Python 2.2", "Python 2.2", "Python", "Python"을 실행하지 않는 한 .from __future__ import divisionPython 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 // 22.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 xy의 몫
x // y xy의 플로어 계수 (1)

주의:

  1. 정수 나눗셈이라고도 합니다.결과 유형은 반드시 int일 필요는 없지만 결과 값은 정수입니다.는 항상 됩니다.1//20,(-1)//2-1,1//(-2)-1 , , , , 입니다.(-1)//(-2)0.

파이썬 2

작동 결과 메모들
x / y xy의 몫 (1)
x // y (바닥) xy의 몫 (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.02에서의 반환값의 반환유형은//파이썬

Python은 데이터 손실을 방지하기 위해 낮은 데이터 유형(정수)을 높은 데이터 유형(플로트)으로 변환합니다.

언급URL : https://stackoverflow.com/questions/183853/what-is-the-difference-between-and-when-used-for-division