前言

在讨论话题之前,我们先说下程序中除法的三种情况:

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)无异,也是整型地板除。

 

python 整除进位 python的整除_python

2. 也可以进行精确除法,只需要在开头加上 from __future__ import division 

   

python 整除进位 python的整除_保留小数_02

 

3. 也可以进行完全地板除,只需要将 / 替换为 // 即可(这一点在3里也是完全一样的)

   

python 整除进位 python的整除_python_03

 

Python3

1. Python3与Python2的一个巨大改变就是默认除法由整型地板除变为精确除法。

   这导致2的代码在3里,所有整形相除的运算结果都会变化,所以很多人还坚持着2 ?

2. 可以加//实现完全地板除。(和2一样)