파이썬에서 '//'를 갖는 이유는 무엇입니까? [복제]
이 질문에는 이미 답변이 있습니다.
나는 누군가의 코드에서 이것을 보았다.
y = img_index // num_images
어디에서 img_index
실행중인 인덱스와 num_images
3입니다.
//
IPython에서 엉망이되면 나누기 기호처럼 행동하는 것처럼 보입니다 (즉, 하나의 슬래시). 이중 슬래시가있는 이유가 있는지 궁금합니다.
파이썬 3에서는 /
연산자가 부동 소수점 나누기 //
를하도록하고 정수 나누기 (즉, 나머지가없는 몫)를하기 위해 연산자를 추가했습니다 . 반면 파이썬 2 /
에서 피연산자 중 하나가 이미 부동 소수점 숫자가 아닌 한 연산자는 정수 나누기였습니다.
Python 2.X에서 :
>>> 10/3
3
>>> # to get a floating point number from integer division:
>>> 10.0/3
3.3333333333333335
>>> float(10)/3
3.3333333333333335
파이썬 3에서 :
>>> 10/3
3.3333333333333335
>>> 10//3
3
추가 참조는 PEP238을 참조하십시오 .
//
무조건 "바닥재 분할"입니다. 예 :
>>> 4.0//1.5
2.0
보시다시피, 두 피연산자가 모두 바닥 float
이지만 //
여전히 수행 할 작업을 항상 알 수 있습니다.
/
Python 릴리스, 향후 가져 오기 및 Python이 실행되는 플래그 (예 : ...)에 따라 Single 은 바닥에 있거나 바닥에 있지 않을 수 있습니다.
$ python2.6 -Qold -c 'print 2/3'
0
$ python2.6 -Qnew -c 'print 2/3'
0.666666666667
당신은 하나의 참조로 /
5 월 바닥, 또는 그것의 값을 포함한까지 완전히 로컬이 아닌 문제를 기반으로, float를 반환하고 있습니다 -Q
플래그 ... ;-).
따라서 바닥을 원한다는 것을 알고 있다면 항상을 사용 //
하십시오. 바닥을 원하지 않는다는 것을 알고 있다면 float()
다른 피연산자 주위를 때리고 를 사용하십시오 /
. 다른 조합, 그리고 당신은 버전, 수입 및 깃발의 자비에 있습니다!-)
Alex의 답변을 보완하기 위해 Python 2.2.0a2부터는 from __future__ import division
많은을 사용하는 편리한 대안 이라고 덧붙 입니다 float(…)/…
. 모든 부서가 수행 플로트 있는 사람을 제외하고, 분열을 //
. 이것은 2.2.0a2의 모든 버전에서 작동합니다.
이러한 다른 답변을 보완하기 위해 //
연산자는 /
정수 나누기를 원한다고 가정 하여에 비해 (3x) 성능상의 이점을 제공합니다 .
$ python -m timeit '20.5 // 2'
100000000 loops, best of 3: 0.0149 usec per loop
$ python -m timeit '20.5 / 2'
10000000 loops, best of 3: 0.0484 usec per loop
$ python -m timeit '20 / 2'
10000000 loops, best of 3: 0.043 usec per loop
$ python -m timeit '20 // 2'
100000000 loops, best of 3: 0.0144 usec per loop
//
반환 값이 type 인 나누기의 경우 math.floor ()의 별칭으로 간주 될 수 있습니다 float
. no-op
반환 값이 type 인 나누기와 동일하게 작동 합니다 int
.
import math
# let's examine `float` returns
# -------------------------------------
# divide
>>> 1.0 / 2
0.5
# divide and round down
>>> math.floor(1.0/2)
0.0
# divide and round down
>>> 1.0 // 2
0.0
# now let's examine `integer` returns
# -------------------------------------
>>> 1/2
0
>>> 1//2
0
참고 URL : https://stackoverflow.com/questions/1535596/what-is-the-reason-for-having-in-python
'Programing' 카테고리의 다른 글
Apple 개발자 프로그램이나 탈옥이없는 기기에서 iOS 앱 테스트 (0) | 2020.02.27 |
---|---|
PHP 문자열을 JavaScript 변수에 전달하고 줄 바꿈을 피하십시오. (0) | 2020.02.27 |
jQuery를 사용하여 AJAX 요청에 헤더 추가 (0) | 2020.02.27 |
여러 줄 명령을 입력하는 방법 (0) | 2020.02.27 |
JavaScript / jQuery DOM 변경 리스너가 있습니까? (0) | 2020.02.27 |