python 整數和浮點數

整數和浮點數

Python支持對整數和浮點數直接進行四則混合運算,運算規則和數學上的四則運算規則徹底一致。spa

基本的運算:code

1 + 2 + 3   # ==> 6
4 * 5 - 6   # ==> 14
7.5 / 8 + 2.1   # ==> 3.0375

使用括號能夠提高優先級,這和數學運算徹底一致,注意只能使用小括號,可是括號能夠嵌套不少層:ip

(1 + 2) * 3    # ==> 9
(2.2 + 3.3) / (1.5 * (9 - 0.3))    # ==> 0.42145593869731807

和數學運算不一樣的地方是,Python的整數運算結果仍然是整數,浮點數運算結果仍然是浮點數:內存

1 + 2    # ==> 整數 3
1.0 + 2.0    # ==> 浮點數 3.0

可是整數和浮點數混合運算的結果就變成浮點數了:數學

1 + 2.0    # ==> 浮點數 3.0

爲何要區分整數運算和浮點數運算呢?這是由於整數運算的結果永遠是精確的,而浮點數運算的結果不必定精確,由於計算機內存再大,也沒法精確表示出無限循環小數,好比 0.1 換成二進制表示就是無限循環小數。it

那整數的除法運算遇到除不盡的時候,結果難道不是浮點數嗎?咱們來試一下:io

11 / 4    # ==> 2

令不少初學者驚訝的是,Python的整數除法,即便除不盡,結果仍然是整數,餘數直接被扔掉。不過,Python提供了一個求餘的運算 % 能夠計算餘數:class

11 % 4    # ==> 3

若是咱們要計算 11 / 4 的精確結果,按照「整數和浮點數混合運算的結果是浮點數」的法則,把兩個數中的一個變成浮點數再運算就沒問題了:循環

11.0 / 4    # ==> 2.75

任務

請計算 2.5 + 10 / 4 ,並解釋計算結果爲何不是指望的 5.0 ?二進制

請修復上述運算,使得計算結果是 5.0

註明:非原創

相關文章
相關標籤/搜索