1-8 Python中整數和浮點數
阿新 • • 發佈:2019-01-09
Python支援對整數和浮點數直接進行四則混合運算,運算規則和數學上的四則運算規則完全一致。
基本的運算:
1 + 2 + 3 # ==> 6
4 * 5 - 6 # ==> 14
7.5 / 8 + 2.1 # ==> 3.0375
使用括號可以提升優先順序,這和數學運算完全一致,注意只能使用小括號,但是括號可以巢狀很多層:
(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
換成二進位制表示就是無限迴圈小數。
那整數的除法運算遇到除不盡的時候,結果難道不是浮點數嗎?我們來試一下:
11 / 4 # ==> 2
令很多初學者驚訝的是,Python的整數除法,即使除不盡,結果仍然是整數,餘數直接被扔掉。不過,Python提供了一個求餘的運算 % 可以計算餘數:
11 % 4 # ==> 3
如果我們要計算 11 / 4 的精確結果,按照“整數和浮點數混合運算的結果是浮點數”的法則,把兩個數中的一個變成浮點數再運算就沒問題了:
11.0 / 4 # ==> 2.75