1. 基礎運算與型別 - 整數, 浮點數
整數與浮點數定義
python 最簡單的的應用, 我們可以在互動模式中做簡單的加減乘除運算
>>> 3 + 5
8
>>> 5 * 2
10
>>> 10 / 5
2
>>> 10 / 4
2
這裡比較特別的是, 這個答案應該要是 2.5
程式語言有 type (型別) 的概念, 所以當我們輸入了一個沒有小數點的數字, python 只會將它視為整數
而 python 的基礎型別包含 bool(布林), int(整數), float(浮點數), string(字串)
所以當範例中 10 / 4, 會變成 int / int ,
所以答案也只會回應一個無條件捨去小數後數字的 int 的結果
假設要得到正確 2.5 這個答案
>>> 10 / 4.0
2.5
>>> 10.0 / 4
2.5
>>> 10.0 / 4.0
2.5
當我們將數值加上了 .0 就變成了一個有小數值的數字,
這時 python 就會將它當作 float, 而當 float 與 int 或 float 做運算時, 結果會回應為 float 的答案,
另外我們也可以這樣做
>>> (float)(10) / 4
2.5
>>> 10 / (float)(4)
2.5
透過 (float) 將一個對象強制轉成 float 型態
為什麼加減乘沒那麼複雜?
因為整數跟整數做加減乘運算不會有浮點數
在 python 3 以上的版本另外有
//
的除法方式, 結果跟 2.7 的/
是一樣結果 但是 python 3 的/
已經可以回傳 float 型態的結果了, 就不需要像這邊要注意 int 型態的問題
餘數
而在程式語言中有另一種常用的運算叫做取餘數, python 中用%
符號來代表
>>> 5 % 2
1
>>> 4 % 2
0
我們有時候會使用這種方式去判斷某個數值是偶數或是奇數
指數
除了以上是在一般的程式語言可以看到的數值運算符號外, python 也提供了一個方便做指數運算的方式
>>> 2 ** 2
4
>>> 2 ** 3
8
運算優先權
在數學的方向來看, 我們做四則運算會先乘除後加減, 但是在程式語言就不一定都遵循這個規則
而基本上在 python 其實還是先乘除後加減, 不過
通常我們會使用
()
來決定數值運算優先權,而這個運算符號在大部分的語言也都試用
所以我們就不需要去記今天用甚麼程式語言, 它的數值運算優先權是怎樣的規則了
>>> 2 + (3 * 2)
8
基數
以上提到的數值運算都是以10進位作為基礎, 實際上, 我們可能會使用到二進位, 八進位, 十六進位的時候
>>> 10
10
>>> 0b10
2
>>> 0o10
8
>>> 0x0f
15
基本上, python 的整數與浮點數運算常用的就這些了