前言
在討論話題之前,我們先說下程序中除法的三種情況:
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一樣)