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 的整數與浮點數運算常用的就這些了

results matching ""

    No results matching ""