數字型態共有三種,字面常數 (literal) 分別是沒有小數點的整數 (integer) ,帶小數點的浮點數 (floating-point number) ,以及加上加號與英文字母 j 的複數 (complex number)
print(1234)
print(56.7)
print(89 + 0j)
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:num01.py
# 功能:示範數字的運算
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 num01.py |
1234 |
56.7 |
(89+0j) |
$ |
什麼情況會用到數字呢?程式 (program) 中絕大多數的場合都會用到數字,像是計算數量、座標等等,因此數字是程式中最常使用的資料型態 (data type) 。
三種數字型態是完全不一樣資料型態,通常依計算需要,在整數及浮點數的場合會自動轉換成浮點數,相同在有複數出現的場合,計算結果會自動轉換成複數,然而反過來並不會自動轉換。
如數學上一樣,數字型態也可做算術運算,加、減都跟數學用的符號一樣,至於乘是用星號 * 代替跟英文小寫字母 x 很像的乘號,除是用斜線 / ,連續兩條斜線 // 用作整數除法,百分比符號 % 則是取餘數,連續兩個星號則是計算次方,另外,正號與負號跟數學上的使用一樣,負負會得正,例如
x = 2
y = 3
print(x + y)
print(x - y)
print(x * y)
print(x / y)
print(x // y)
print(x % y)
print(x ** y)
print(+x)
print(-x)
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:num02.py
# 功能:示範數字的運算
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 num02.py |
5 |
-1 |
6 |
0.6666666666666666 |
0 |
2 |
8 |
2 |
-2 |
$ |
內建函數 (built-in function) 中也有好幾個跟數字型態有關,除了 int() 、 float() 及 complex() 等三個函數是將參數 (parameter) 轉換成相對應的整數、浮點數、複數之外, abs() 是回傳參數的絕對值, divmod() 則是回傳含有兩個值的序對,第一個值為整數除法的結果,第二個值則是取餘數的結果, pow() 跟連續兩個星號一樣,都是計算次方,最後 round() 則是回傳最接近的整數,也就是刪除小數點之後的整數
- abs(x)
- int(x)
- float(x)
- complex(re, im)
- divmod(x, y)
- pow(x, y)
- round(x[, n])
- bin(n)
數字型態都是物件 (object) ,因此依型態需求有一些屬性 (attribute) 及方法 (method) 可用,像是複數有 real 屬性可取得複數的實部, imag 屬性取得複數的虛部, conjugate() 方法則回傳該複數的共軛複數。浮點數的 as_integer_ratio() 方法回傳該浮點數為哪兩個整數的比例, is_integer() 方法回傳該浮點數是否為整數,至於 hex() 方法與類別方法 (class method) fromhex() 則跟雜湊運算相關
- c.real
- c.imag
- c.conjugate()
- float.as_integer_ratio()
- float.is_integer()
- float.hex()
- classmethod float.fromhex(s)
整數型態還可以直接進行二進位計算,其中直線符號 | 為「或」,脫字號 ^ 表示「互斥或」,且符號就表示「且」,連續兩個小於符號 << 為向左位移,連續兩個大於符號 >> 為向右位移,鼻音符號 ~ 表示「非」。
x = 2
y = 3
print(x | y)
print(x ^ y)
print(x & y)
print(x >> y)
print(x << y)
print(~x)
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:num03.py
# 功能:示範數字的運算
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 num03.py |
3 |
1 |
2 |
0 |
16 |
-3 |
$ |
此外,內建函數 bin() 回傳整數的二進位形式字串, bit_length() 方法回傳該整數二進位的位元長度,而 to_bytes() 方法與類別方法 from_bytes() 則是用做 byte 陣列處理。
- bin()
- int.bit_length()
- int.to_bytes()
- classmethod int.from_bytes()
相關教學影片
- Python 的內建資料型態 - 整數 ⇨ YouTube 頁面連結
- Python 的內建資料型態 - 浮點數 ⇨ YouTube 頁面連結
- Python 的內建資料型態 - 複數 ⇨ YouTube 頁面連結