从介绍了新部门(强调我的部门)的PEP-238:
地板分割将在所有Python数字类型中实现,并将具有以下语义:
a // b == floor(a/b)
除了结果类型将是操作之前将 a 和 b 强制转换为的普通类型。
如果输入的类型不同,则首先使用与所有其他算术运算符相同的规则将它们强制转换为公共类型。
特别是,如果 a 和 b 均为整数或长整型,则结果的类型和值与这些类型的经典除法相同(包括混合输入类型的情况;int//long
并且long//int
都将返回长整型)。
例如:
3.5//2.0 == 1.0
对于复数,//
会引发一个例外,因为floor()
不允许使用复数。
对于用户定义的类和扩展类型,所有语义均取决于该类或类型的实现。
是的,它应该以这种方式运行。 “//
表示整数除法,应该返回整数” -不完全是,它表示 并且应该返回 等于 整数的值((a // b).is_integer()
如果两个操作数均为浮点数,则始终希望为true)。