1. 程式人生 > >Python2和Python3中除法操作-的不同

Python2和Python3中除法操作-的不同

X/Y

在3.0版本之前的Python中

>>>1/2

0

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

有時候,這個功能比較有用,譬如在做一些需要取位數上的值時可以利用此特性用於迴圈結束等,但通常,大家用不到這種。

那麼,有兩種解決方式:

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

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

>>>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