用Python做整數的加減乘除,並發現整數除法中隱藏的陷阱。
下面的例子我們用Python計算1+2, 1-2, 1*2,以及1/2的值。
print "1 + 2 = ", 1 + 2
print "1 - 2 = ", 1 - 2
print "1 * 2 =", 1 * 2
print "1 / 2 = ", 1 / 2
1 + 2 = 3
1 - 2 = -1
1 * 2 = 2
1 / 2 = 0
這邊發現,Python在前三種運算都沒有出現問題,但是在除法的計算中出現了問題。原因是因為,Python在整數除整數的計算,會將答案中小數點後會被無條件捨去,所以本來½ 應該是0.5卻變成0了。為了要正確算出0.5,我們可以看下面的例子
print "1.0 / 2.0 = ", 1.0 / 2.0
print "1.0 / 2 = ", 1.0 / 2
print "1 / 2.0 = ", 1 / 2.0
1.0 / 2.0 = 0.5
1.0 / 2 = 0.5
1 / 2.0 = 0.5
當除數或是被除數是浮點數的時候,Python在除法計算上就會計算出正確的數值0.5。另一個方法是利用Python內建的float()函數,將括號中的數字強迫轉成浮點數,這樣子也可以得到正確的答案0.5。
print "float (1) = ", float(1)
print "float(1) / 2 = ", float(1) / 2
float(1) = 1.0
float(1) / 2 = 0.5