前言
在讨论话题之前,我们先说下程序中除法的三种情况:
1. 传统的除法,我称之为整型地板除。在C、C++、Java中常见,特点是整数相除舍弃小数取整,浮点数相除则保留小数(如果有)。
1 >>>1/2
2 0
3 >>>1.0/2.0
4 0.5
2. 真实的除法,我称之为精确除法。特点是无论整数还是浮点数,均保留小数(如果有)。
1 >>>1/2
2 0.5
3 >>>1.0/2.0
4 0.5
3. 只留整数的除法,我称之为完全地板除。特点是无论整数还是浮点数,均不保留小数(如果有)。
>>>1//2
0
>>>1.0//2.0
0.0
好了,介绍完程序的三种除法,现在我们来说说Python中的除法。
Python2
1. python2中的除法与传统语言(c、c++、java)无异,也是整型地板除。
2. 也可以进行精确除法,只需要在开头加上 from __future__ import division
3. 也可以进行完全地板除,只需要将 / 替换为 // 即可(这一点在3里也是完全一样的)
Python3
1. Python3与Python2的一个巨大改变就是默认除法由整型地板除变为精确除法。
这导致2的代码在3里,所有整形相除的运算结果都会变化,所以很多人还坚持着2 ?
2. 可以加//实现完全地板除。(和2一样)