給自學者的Python教學(6):數字轉換

YC
4 min readFeb 17, 2018

--

繼上次的算術運算子之後,這次我們來介紹一下如何使用不同的工具來進行數字的類型轉換。

我們可以使用 int() 來將其他的 Python 數據類型轉型為整數。當然,不是所有東西都可以轉換為整數的,以下我們來一一說明:

Python 中最簡單的數據類型為布爾型,True / False。當我們使用 int() 來進行轉換之後,它們分別可以被轉換為 1 和 0。(注意,在 Python 中,True和False 的字首都需要大寫來,才能被辨識,若寫成小寫,則會出現 error。)

>>> int(True)
1
>>> int(False)
0

當浮數點轉換為整數時,後面的小數點會被舍去:

>>> int(94.3)
94
>>> int(1.0e4)
10000

亦可以將只有數字的字符串 (string) 轉換為整數:

>>> int(‘99’)
99
>>> int(‘-21’)
-21
>>> int(‘+22’)
22

如果我們將一大堆不止是數字的東西放進 int() 會及生什麼事?

>>> int(‘Cannot more than 87 score’)
Traceback (most recent call last):
File “<pyshell#5>”, line 1, in <module>
int(‘Cannot more than 87 score’)
ValueError: invalid literal for int() with base 10: ‘Cannot more than 87 score'

因為這些不只有數字的字串不能被 Python 的 compiler 所識別,也就是int()中不能接受這些數據,就會出現異常。

那浮數點是不是也有一樣的函數可以將其他的數字類型轉換成浮數點呢?

對的!跟整數一樣,布爾型在 float() 中會被轉換:

>>> float(True)
1.0
>>> float(False)
0.0

那整數又會如何?

>>> float(59)
59.0
>>> float(39)
39.0

最後,不論是字串、正負號及指數,都可以轉換為真正的浮點數:

>>> float(‘88.8’)
88.8
>>> float(‘-33.2’)
-33.2
>>> float(‘1.0e4’)
10000.0

最後,Python 包含著很多常用的數學函數,我推薦大家可以到:
https://docs.python.org/3/library/math.html
這邊仔細看看 Python 的 Math 庫的文件。

我們可以透過載入 math 這個函式庫來在 Python 使用不同的 math 函式!

>>> import math
>>> math.pi
3.141592653589793
>>> math.e
2.718281828459045

我們可以使用 fabs() 用來獲得絕對值!

>>> math.fabs(98.6)
98.6
>>> math.fabs(-23)
23

當然少不了向上取整數( floor() )與向下取整數( ceil() )的函式吧。

>>> math.floor(98.6)
98
>>> math.floor(27.1)
27
>>> math.ceil(98.6)
99
>>> math.ceil(27.1)
28

使用sqrt()取得平方根。

>>>math.sqrt(100)
10.0

以下還有很多很多。。。

到這裡,我們開始導入了「庫」的概念,之後我們會使用更多更多的「庫」與框架來讓程式更方便地為我們所用!

如果你覺得我的文章幫助到你,希望你也可以化讚為賞,加入 Liker ,再按下方的綠色拍手按鈕,為文章點讚!為作者增加收益,再回饋更多好文章!

--

--

YC
YC

Written by YC

提供更精確的技術內容為目標,另創立「程式愛好者」專頁。首席軟體工程師,專研後端技術、物件導向、軟體架構。

No responses yet