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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM