Python 调用类型(1/2)返回整数?

Python 调用类型(1/2)返回整数?,python,python-2.x,Python,Python 2.x,所以我注意到打电话: print type(1/2) 返回一个整数,但是它不应该是浮点吗?尝试类型(1/2.0),这将返回浮点。其中一个数字必须是浮点值才能在float中获得返回值 Python-2.x除法运算符遵循经典除法。使用整数操作数时,经典除法截断小数点,返回整数(也称为底除法)。当给定一对浮点操作数时,它返回实际的浮点商(也称为真除法) 例如: >>> 1 / 2 # integer truncation (floor division) 0 &

所以我注意到打电话:

print type(1/2) 
返回一个整数,但是它不应该是浮点吗?

尝试
类型(1/2.0)
,这将返回浮点。其中一个数字必须是浮点值才能在float中获得返回值

Python-2.x除法运算符遵循经典除法。使用整数操作数时,经典除法截断小数点,返回整数(也称为底除法)。当给定一对浮点操作数时,它返回实际的浮点商(也称为真除法)

例如:

>>> 1 / 2          # integer truncation (floor division)
0
>>> 1.0 / 2.0      # returns real quotient (true division)
0.5

在Python3.x中,除法的工作方式不同<代码>类型(1/2)将返回类型float。Python-3.x除法运算符遵循真除法。

在python2x中,在商=>floor除法中添加了不带余数/除法的除法 如果要强制2x返回
真除法
余数/除法
添加到商中),请尝试

>>>from __future__ import division
>>>2/3
>>>0.6666666666666666
但是如果您需要返回以前的行为(即楼层划分),请尝试


在python2中,
-1/2==-1
,所以“截断小数位”可能有点误导。(但是,负数的整数除法本身就是一个脑筋急转弯。)
>>>2//3
>>>0