Python 中的三種數字型態在計算過程中會自動往表達範圍較大的數系移動,像是整數 (integer) 計算中參雜浮點數 (floating-point number) 的話,計算結果就會是浮點數,同樣的道理,浮點數計算中參雜複數 (complex number) 的話,計算結果就會是複數。
例如整數 1 加上浮點數 2.3 ,結果會是浮點數 3.3 ,整數 4 加上複數 5-6j ,結果會是 9-6j
a = 1 + 2.3
print(a)
b = 4 + (5- 6j)
print(b)
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:conversion01.py
# 功能:示範數字的自動型態轉換
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 conversion01.py |
3.3 |
(9-6j) |
$ |
如果要反過來,浮點數的結果要取整數的話,就要用內建函數 (built-in function) int() 取得整數,注意這裡不會四捨五入,另外複數不能用內建函數轉換成整數或浮點數
a = 2 + 4.5
print(int(a))
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:conversion02.py
# 功能:示範浮點數轉換成整數
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 conversion02.py |
6 |
$ |
Python 中需要布林運算就會產生真假值,除了字面常數 True 及 False 外,數字 0 、 0.0 、空字串 (empty string) 及空串列 (empty list) 也表示邏輯上的 False ,反之非 0 、非 0.0 、至少一個元素的字串 (string) 及串列 (list) 都表示邏輯上的 True 。
這邊用 if 後面的條件 (condition) 表示 1 、 33.4 、字串 "apple" 及有一個元素 0 的串列都為 True
if 1:
print("1")
if 33.4:
print(1)
if "apple":
print("1")
if [0]:
print("1")
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:conversion03.py
# 功能:示範各種型態回傳 True 的情況
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 conversion03.py |
1 |
1 |
1 |
1 |
$ |
這邊用 if 後面的條件表示 0 、 0.0 、空字串及空串列都為 False
if not 0:
print("1")
if not 0.0:
print(1)
if not "":
print("1")
if not []:
print("1")
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:conversion04.py
# 功能:示範各種型態回傳 False 的情況
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 conversion04.py |
1 |
1 |
1 |
1 |
$ |
接下來繼續介紹如何在字串中取出數字,以及如何切割字串為串列。
如果字串只含有整數,用內建函數 int() 就可取出整數,反之含有小數點的數字就得用 float() 取出浮點數,然而只要字串中含有其他非數字的字元,就無法直接用內建函數 int() 或 float() 轉換成數字
a = int("123")
print(a)
b = float("5.6")
print(b)
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:conversion05.py
# 功能:示範字串轉換成整數或浮點數
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 conversion05.py |
123 |
5.6 |
$ |
利用內建函數 list() 可以將字串切割成單一字元的串列,如果想要做單字切割的話,可以利用字串的 split() 方法 (method) ,用想要切割的空白符號當參數 (parameter) ,就能將英文句子切割成個別的單字了
a = list("abcde")
print(a)
b = "There is no spoon.".split(" ")
print(b)
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:conversion06.py
# 功能:示範字串轉換成整數或浮點數
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 conversion06.py |
['a', 'b', 'c', 'd', 'e'] |
['There', 'is', 'no', 'spoon.'] |
$ |
相關教學影片