v2.2 以前,除(「/」)運算子的返回有兩種可能情況,分別是整型和浮點型。運算元的不同,是影響計算結果資料型別的關鍵。
以 a / b 為例,a、b均為整型,則結果返回整型;a、b任意乙個是浮點型的話,則結果就是浮點型。
*************************==
# python v2.7
>>> 3 / 2, 3.0 / 2, 3.0 / 2.0
(1, 1.5, 1.5)
*************************==
在某些場合,我們可能會期待 a / b 返回浮點型,可是由於某些不確定的因素,參與運算的 a 和 b都是整型,這可能會帶來錯誤,顯然有精度上的損失。
v2.2 以後,引入了「地板除」(「//」)運算子,從數值上講,它返回小於除法運算結果的最大整數;從型別上講,與"/"運算子返回型別邏輯一致。
而「/」運算子,沒有變化。
*************************==
# python v2.7
>>> 3 / 2, 3.0 / 2, 3 // 2, 3.0 // 2
(1, 1.5, 1, 1.0)
*************************==
v3.x 以後,「/」運算子被命名為「真除」,不再依據運算元型別選擇返回值型別,保證計算結果數值上的精度是第一位的。所以,無須再把運算元轉變成浮點型,以保證運算結果不被截斷小數部分。
「//」運算子,不變。
*************************==
# python v3.2
>>> 3 / 2, 3.0 / 2, 3 // 2, 3.0 // 2
(1.5, 1.5, 1, 1.0)
*************************==
python2與python3中除法的區別
python2中的除法 1 2 即乙個整數 無小數部分的數 被另外乙個整數除,計算結果的小數部分被截除了,只留下了整數部分 有時候,這個功能比較有用,譬如在做一些需要取位數上的值時可以利用此特性用於迴圈結束等,但通常,大家用不到這種。那麼,有兩種解決方式 1 用實數 包含小數點的數 而不是整數進行運...
python2和python3 中的除法的區別
1.python2中有 和 的除法區別 其中 的用法 1 2 即乙個整數 無小數部分的數 被另外乙個整數除,計算結果的小數部分被截除了,只留下了整數部分 有時候,這個功能比較有用,譬如在做一些需要取位數上的值時可以利用此特性用於迴圈結束等,但通常,大家用不到這種。那麼,有兩種解決方式 1 用實數 包...
Python2到python3的轉換
subprocess返回的output中有 nbytes到str的轉換 參考 b b example bytes object s example str object sb bytes s,encoding utf8 str to bytes 或者 sb str.encode s str to b...