python2.7中的函数operator.idiv似乎在python 3.4中不存在。功能是否消失或现在可以在哪里找到?
import operator
operator.idiv
>>> AttributeError: module 'operator' has no attribute 'idiv'
答案 0 :(得分:4)
在Python 3中,根据PEP 238,默认的除法运算符/
被修改为始终返回浮点结果,而不管输入类型如何。因此,在Python 2中3 / 2
和3.0 / 2
将返回不同的结果,现在您在Python 3中获得一致的浮点结果:
>>> 3 / 2
1.5
>>> 3.0 / 2
1.5
>>> 3 / 2.0
1.5
另一个除法运算符是底层除//
,它将结果置于底层(截断小数位)。请注意,此运算符仍然遵循输入类型,因此使用两个整数将为您提供int,而使用float也会将结果转换为float:
>>> 3 // 2
1
>>> 3 // 2.0
1.0
>>> 3.0 // 2
1.0
所以答案是,是的,“经典”除法运算符在Python 3中消失了。只有一个“真正的”除法(导致浮点数)和一个底层除法,可以使用operator.itruediv
和{分别为{1}}。