以下程式印出整數、浮點數、複數相加的結果
a = 1 b = 2.1 c = 3 + 4j d = 5 + 6.2j e = 7.3 + 8.4j f = 7.3 - 8.4j print(a + b, a + c, a + d, a + e) print(b + c, b + d, b + e) print(c + d, c + e) print(d + e) print(e + f) # 《程式語言教學誌》的範例程式 # http://pydoing.blogspot.com/ # 檔名:con01.py # 功能:示範 Python 程式 # 作者:張凱慶 # 時間:西元 2010 年 12 月
執行結果如下
運算適中的自動型態轉換是由儲存範圍小的轉換到儲存範圍大的,若是相反過來,浮點數轉換為整數,可以利用內建函數 (function) int() 進行轉換
a = 1 b = 2 c = 3.6 d = 3.6 print(int(a + c), int(a + d)) print(float(a + b)) print(complex(a + b)) # 《程式語言教學誌》的範例程式 # http://pydoing.blogspot.com/ # 檔名:con02.py # 功能:示範 Python 程式 # 作者:張凱慶 # 時間:西元 2010 年 12 月
執行結果如下
此例中的第 9 行
print(int(a + c), int(a + d))
a + c 實際等於 4.1 ,而 a + d 實際等於 4.6 ,從這裡可以看出利用 int() 轉換為整數採取無條件捨去小數點後的數字。
float() 強制轉換運算式結果為浮點數, complex() 強制轉換運算式結果為複數,這與自動轉換的結果相似,可用於兩個整數相加的強制型態轉換。
此外須注意,複數無法套用 int() 或 float() ,但可利用複數物件的屬性 real 存取實部, imag 存取虛部,得到會事浮點數的結果,例如以下程式
a = 3 + 5j print("a =", a) b = 3 - 5j print("b =", b) c = a * b if c.imag == 0: c = c.real print("c =", c) # 《程式語言教學誌》的範例程式 # http://pydoing.blogspot.com/ # 檔名:con03.py # 功能:示範 Python 程式 # 作者:張凱慶 # 時間:西元 2010 年 12 月
執行結果如下
變數 (variable) a 與 b 都是複數,雖然 a 乘以 b 的虛部會得到 0 ,結果應該是整數,但 Python 仍把複數的計算結果當成複數。此例利用簡單的 if 陳述 (statement) 測試虛部是否為 0 ,若為 0 ,結果就以實部儲存。
中英文術語對照 | |
---|---|
資料型態 | data type |
整數 | integer |
浮點數 | float-pointing number |
複數 | complex number |
運算式 | expression |
運算元 | operand |
函數 | function |
變數 | variable |
陳述 | statement |
沒有留言:
張貼留言