Python2和Python3中除法操做/的不一樣

X/Yspa

在3.0版本以前的Python中命令行

>>>1/2io

0class

即一個整數(無小數部分的數)被另一個整數除,計算結果的小數部分被截除了,只留下了整數部分import

有時候,這個功能比較有用,譬如在作一些須要取位數上的值時能夠利用此特性用於循環結束等,但一般,你們用不到這種。循環

那麼,有兩種解決方式:程序

1)用實數(包含小數點的數)而不是整數進行運算方法

實數在Python中被稱爲浮點數(Float,或者Float-point number),只要參與運算的數字中有一個是浮點數,則爲浮點數運算,運算結果亦爲浮點數,也就不會截除小數部分im

di

>>>1.0/2.0

0.5

>>>1/2.0

0.5

>>>1.2/2

0.5

>>>1/2.

0.5

2)讓Python改變除法的默認執行方式

能夠在程序中加入如下語句,或者在解釋器裏執行它:

>>>from_future_import division

還有另一種方法,若是經過命令行(如在Linux系統上)運行Python,能夠使用命令開關啊-Qnew

使用以上兩種方法。就能夠只執行普通的除法運算。

>>>1/2

0.5

此時,單斜線就再也不做爲整除了,可是Python提供了另一個用於實現整除的操做符--雙斜線:

>>>1//2

0

就算是浮點數,雙斜線也會執行整除

>>>1.0/2.0

0

Pytho3.0以後的版本中

在Python3.0中變成真除法(不管任何類型都會保持小數部分,即便整除也會表示爲浮點數形式)。 

>>> 3/2

1.5

>>> 3/2.0

1.5

>>> 4/2

2.0

>>> 4/2.0

2.0

相關文章
相關標籤/搜索