高見龍

iOS app/Ruby/Rails Developer & Instructor, 喜愛非主流的新玩具 :)

數字

沒有上限?

在Python,數字基本上是沒有上限的。也不是說沒有沒有上限,就用到電腦記憶體用完為止。有些程式語言的數字的值都有一個限制,超過就會發生溢位(overflow)。什麼是溢位? 就像你車子的里程表,假設全部有6個位數,也就是最大顯示是999999,但只要超過這個數字就會從000000開始,在處理資料的時候,這通常不會是你想要的結果。而Python沒有這個問題,也就是因為這樣,Python可以拿來算很大的數字都是ok的。

數字裡面,只要有小數點就會被視為浮點數,而浮點數會有誤差,例如:

1
print 0.1 + 0.1 + 0.1 - 0.3

算出來的結果應該跟我們人類的腦袋不太一樣。如果你有這方面的需求,可以藉助Decimal模組的幫忙:

>>> from decimal import *
>>> Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3')
Decimal('0.0')

這樣算出來應該就會是你要的了。

四則運算

基本上跟我們在小學時候學的差不多,就加+、減-、乘*、除/,先乘除後加減,如果遇到括號要先處理。這些都差不多,不過"除法"比較不一樣一點,如果除數跟被除數都是整數的話,那算出來的結果就會是整數,例如:

print 10/3     # 3

如果你在除數或被除數其中一個加上小數點,讓它變成浮點數型態的話,算出來就又不一樣了:

print 10.0/3   # 3.333333333

但如果你想要強迫進行整數除法的話,請使用//

print 10.0//3  # 3.0

次方則是使用**

print 2**3     # 8

型態轉換可使用int()float()complex()等方法來把原來的數字轉換成整數、浮點數以及複數型態。

再來,我們來看看Python的Boolean型態..

Comments