使用其中一种有什么好处吗?在Python 2中,它们似乎都返回相同的结果:

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

当前回答

前面的答案都很好。我想再补充一点。在某些情况下,它们会得到相同的商。之后,除法运算符(//)可以正常工作,但除法(/)运算符不行:

>>> int(755349677599789174 / 2) # Wrong answer
377674838799894592
>>> 755349677599789174 // 2     # Correct answer
377674838799894587

其他回答

在Python 3中。X, 5 / 2返回2.5 5 // 2返回2。前者是浮点除法,后者是浮点除法,有时也称为整数除法。

在Python 2.2或更高版本的2。x行,对于整数没有区别,除非执行from __future__导入除法,这将导致Python 2。X采用3。x的行为。

无论将来导入什么,5.0 // 2都将返回2.0,因为这是操作的下限除法结果。

您可以在PEP 238:更改除法操作符中找到详细说明。

//是楼层划分。它总是会给你结果的整数底。另一种是“常规”除法。

双斜杠//是层划分:

>>> 7//3
2

Python 2.7和其他即将推出的Python版本:

部门(/)

左手操作数除以右手操作数

例如:4 / 2 = 2

楼层划分(//)

操作数的除法,其结果为除小数点后数的商。但如果其中一个操作数是负的,结果会被取整,即从零四舍五入(直到负无穷):

例子:9 / / 2 = 4和9.0 / / 2.0 = 4.0,-11 / / 3 = 4,-11.0 / / 3 = -4.0

/事业部和//楼层事业部操作符都以类似的方式操作。

正如大家已经回答的,//是楼层划分。

这一点之所以重要,是因为//在2.2开始的所有Python版本中,包括Python 3,都是明确的层划分。x版本。

行为的改变取决于:

是否激活__future__导入(module-local) Python命令行选项,-Q old或-Q new