iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
Software Development

跟著 OXXO 一起學 Python系列 第 9

( Day 6.1 ) Python 數字 number

  • 分享至 

  • xImage
  •  

「數字」就是我們常見的阿拉伯數字,但在 Python 裡,數字又分成「整數」、「浮點數」( 小數 ) 和「底數」,數字可以進行各種數學式的運算,也可以進行各種邏輯比較、時間表達等以數字為主的運算。

原文參考:數字 number

本篇使用的 Python 版本為 3.7.12,所有範例可使用 Google Colab 實作,不用安裝任何軟體 ( 參考:使用 Google Colab )

整數

整數 integer,表示沒有分數或小數點的十進位數字,使用 type 查看整數的「型別」,可以得到「int」的型別。

type(5)  # int

整數可以透過下方數學式進行一般的算數計算,並依循「先乘除後加減」的規則。

運算子 說明 範例 結果
+ 加法 1+2 3
- 減法 20-12 8
* 乘法 2*3 6
/ 除法 9/2 4.5
// 除法取整數 ( 無條件捨去 ) 9//2 4
% 餘數 9%2 1
** 次方 2**3 8
3 + 2          # 5
3 + 2 * 2      # 7
( 3 + 2 ) * 2  # 10

如果整數的運算會產生小數點,結果就會轉換成浮點數。

type(3/2)  # float

進行整數的運算時,需要注意數字的「開頭」不能為 0 ( 除非是「底數」 ),如果整數開頭為 0,執行時會出現錯誤。

Python 教學 - 數字 - 整數

如果要讓一個數值等於「整數」,可以使用「int 函式」來進行型態的轉換,int 函式也會將小數點的部分無條件捨棄、將數字字串轉換成數字,或將布林值轉換成 1 或 0。

int(5.1)   # 5
int(9/2)   # 4
int('5')   # 5
int('+2')  # 2
int(True)  # 1
int(False) # 0

int 函式也可以進行二進制、八進制、十六進制的轉換。

  • 十進制:0~9,當 10 的時候會進一位。
  • 二進制:只有 1 和 0,當 2 的時候會進一位,變成 10,3 則是 11。
  • 八進制:0~7,當 8 的時候會進一位,變成 10,9 則是 11。
  • 十六進制:0~15 ( 10~15 由 A~F 表示 ),當 16 的時候會進一位,變成 10,11 則是 17。
int('101', 2)  # 5   二進制
int('101', 8)  # 65  八進制
int('101', 16) # 257 十六進制

注意,如果 int 轉換的是「字串」或「有小數點數字的字串」,就會發生錯誤。

Python 教學 - 數字 - 二進制、八進制、十六進制

浮點數

浮點數 float,表示包含小數點的十進位數字,使用 type 查看整數的「型別」,可以得到「float」的型別,從下方的程式可以看到,只要數值包含了小數點,就算是 1.0 或 0.0,都會是「浮點數 float」的型別 ( 注意,由於計算機有位元數限制,有小數點的數字最多只有 15 位有效數字 )。

type(5.1) # float
type(1.0) # float
type(0.0) # float

如果使用浮點數和整數進行運算 ( 或和布林值運算 ),得到的結果會是浮點數。

1.0 + 5      # 6.0
1.0 + True   # 2.0
1.0 + False  # 1.0

浮點數可以透過「float 函式」將整數、數字文字或布林值,轉換成浮點數的數字。

float(5)     # 5.0
float('5')   # 5.0
float('5.1') # 5.1
float(True)  # 1.0
float(False) # 0.0

底數

底數是在數字的前方,加入 0b、0o 或 0x 的底數,來表示二進制、八進制或十六進制的數字,在「位元級」的模式下,往往是使用二進制、八進制或十六進制進行操作。

底數 代表
0b 或 0B 二進制
0o 或 0O 八進制
0x 或 0X 十六進制
0b1111 # 15 ( 二進制 )
0o1111 # 585 ( 八進制 )
0x1111 # 4369 ( 十六進制 )

布林

「布林 Bool」只有 True 和 False 兩個值,通常 True 可以表示為 1,Fasle 可以表示為 0,透過特殊函示 bool() 可以將任何資料型態轉換成布林,布林主要運用在邏輯判斷中,可以根據得到的布林值,作出對應的動作,在之後的許多範例中,都可以看見布林的應用。

下列「非 0 數字」會轉換為 True:

bool(True)  # True
bool(1)     # True
bool('ok')  # True
bool(-1)    # True

下列「0 值數字」會轉換為 False:

bool(False)  # False
bool(0)      # False
bool(0.0)    # False

更多教學

大家好,我是 OXXO,是個即將邁入中年的斜槓青年,我有個超過一千篇教學的 STEAM 教育學習網,有興趣可以參考下方連結呦~ ^_^


上一篇
( Day 5.3 ) Python 重複迴圈 ( for、while )
下一篇
( Day 6.2 ) Python 運算子 operator
系列文
跟著 OXXO 一起學 Python101
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言