使用其中一种有什么好处吗?在Python 2中,它们似乎都返回相同的结果:
>>> 6/3
2
>>> 6//3
2
使用其中一种有什么好处吗?在Python 2中,它们似乎都返回相同的结果:
>>> 6/3
2
>>> 6//3
2
当前回答
方程的答案四舍五入到下一个较小的整数或以。0作为小数点的浮点数。
>>>print 5//2
2
>>> print 5.0//2
2.0
>>>print 5//2.0
2.0
>>>print 5.0//2.0
2.0
其他回答
前面的答案都很好。我想再补充一点。在某些情况下,它们会得到相同的商。之后,除法运算符(//)可以正常工作,但除法(/)运算符不行:
>>> int(755349677599789174 / 2) # Wrong answer
377674838799894592
>>> 755349677599789174 // 2 # Correct answer
377674838799894587
正如大家已经回答的,//是楼层划分。
这一点之所以重要,是因为//在2.2开始的所有Python版本中,包括Python 3,都是明确的层划分。x版本。
行为的改变取决于:
是否激活__future__导入(module-local) Python命令行选项,-Q old或-Q new
Python 3
操作 结果 笔记 X / y x和y的商 X // y x和y的底商 (1) 注: 也称为整数除法。结果值是一个整型,尽管结果的类型不一定是int。结果总是趋近于负无穷:1//2等于0,(-1)//2等于-1,1//(-2)等于-1,(-1)//(-2)等于0。
Python 2
Operation Result Notes x / y quotient of x and y (1) x // y (floored) quotient of x and y (4)(5) Notes: 1. For (plain or long) integer division, the result is an integer. The result is always rounded towards minus infinity: 1/2 is 0, (-1)/2 is -1, 1/(-2) is -1, and (-1)/(-2) is 0. Note that the result is a long integer if either operand is a long integer, regardless of the numeric value. 4. Deprecated since version 2.3: The floor division operator, the modulo operator, and the divmod() function are no longer defined for complex numbers. Instead, convert to a floating point number using the abs() function if appropriate. 5. Also referred to as integer division. The resultant value is a whole integer, though the result’s type is not necessarily int.
//实现“楼层划分”,不管你的类型是什么。所以 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 vs. Python 3.5
print (2/3) ----> 0 Python 2.7
print (2/3) ----> 0.6666666666666666 Python 3.5
Python 2.7.10 vs. Python 3.5
print (4/2) ----> 2 Python 2.7
print (4/2) ----> 2.0 Python 3.5
现在,如果你想拥有(在Python 2.7中)与Python 3.5相同的输出,你可以执行以下操作:
Python 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