Python 速查手冊

2.8 型態轉換規則

本書已有新版,請參考 Python 簡易手冊 - 目錄

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 中需要布林運算就會產生真假值,除了字面常數 TrueFalse 外,數字 00.0 、空字串 (empty string) 及空串列 (empty list) 也表示邏輯上的 False ,反之非 0 、非 0.0 、至少一個元素的字串 (string) 及串列 (list) 都表示邏輯上的 True

這邊用 if 後面的條件 (condition) 表示 133.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 後面的條件表示 00.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.']
$

相關教學影片

上一頁: 2.7 字典
Python 速查手冊 - 目錄
下一頁:單元 3 - 運算子與運算式
回 Python 教材首頁
回程式語言教材首頁