Answers:
在Python 3.x中,5 / 2将返回2.5并且5 // 2将返回2。前者是浮点除法,后者是地板除法,有时也称为整数除法。
在Python 2.2或更高版本的2.x行中,除非执行from __future__ import division,否则整数没有区别,这会使Python 2.x采取3.x行为。
不管将来的进口是什么,5.0 // 2都会归还,2.0因为这是操作的地板分割结果。
您可以在https://docs.python.org/whatsnew/2.2.html#pep-238-changing-the-division-operator中找到详细说明
python -Qnew。其他部门选项:-Qold(默认), -Qwarn,-Qwarnall
5.0 / 2返回该值2.5,5 / 2.0旧的行为仅在两个操作数都为时才不同int。
//不论您使用哪种类型,都可以实施“楼层划分”。所以
1.0/2.0会给0.5,但两者1/2,1//2并且1.0//2.0会给0。
有关详细信息,请参见https://docs.python.org/whatsnew/2.2.html#pep-238-changing-the-division-operator
math.floor()或者math.fmod()如果您不确定一元运算符是怎么回事。
/并且//是二元运算符(两个操作数,左右,分子和分母)
// -浮点除法
// ->楼层划分
让我们在python 2.7和python 3.5中查看一些示例。
Python 2.7.10和Python 3.5
print (2/3) ----> 0 Python 2.7
print (2/3) ----> 0.6666666666666666 Python 3.5
Python 2.7.10和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中,Floor划分之间没有区别
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
-100 // 33=> -4 ; 100 // -33=> -4 ; 但是由于地板函子的取整方向,与上一个相比,下一个似乎反直觉:-100 // -33=> 3。
正如大家已经回答的那样,//是楼层划分。
之所以如此重要,是因为//在所有2.2版本的Python版本中,包括Python 3.x版本,都明确地进行了地域划分。
的行为/可能会有所不同,具体取决于:
__future__导入(模块本地)-Q old或者-Q newPython 2.7和其他即将发布的python版本:
/)将左操作数除以右操作数
例: 4 / 2 = 2
//)操作数的除法,结果是除掉小数点后的数字的商。但是,如果其中一个操作数是负数,则结果是下限的,即从零开始舍入(朝负无穷大):
例如:9//2 = 4和9.0//2.0 = 4.0,-11//3 = -4,-11.0//3 = -4.0
这两个/师和//地板除法运算的操作以类似的方式。
5.0//2会导致2.0,而不是2因为运算符返回值的返回类型//遵循python强制(类型转换)规则。
Python促进将较低数据类型(整数)转换为较高数据类型(浮点数),以避免数据丢失。
//运营商做整数除法。