1. 程式人生 > Python入門教學 >08 Python 資料型別詳細篇:數值

08 Python 資料型別詳細篇:數值

Python 的數值可以表示三種類型的資料:

  • 整數 :可以表示正數,例如 123;可以表示負數,例如 123;使用 0 表示零。

  • 浮點數:浮點數由整數部分與小數部分組成,例如 123.456。

  • 複數:複數由實數部分和虛數部分構成,例如 1 + 2j,實數部分是 1,虛數部分是 2。

1. 基本運算

1.1 加法

  • 整數相加
>>> 1 + 1
2
  • 浮點數相加
>>> 1.2 + 2.3
3.5
  • 複數相加
>>> x = 1 + 2j
>>> y = 2 + 3j
>>> x +
y (3 + 5j)

1.2 減法

  • 整數相減
>>> 2 - 1
1
  • 浮點數相減
>>> 2.3 - 1.2
1.09999999999999

輸出結果為 1.09999999999999,而不是 1.1。在計算機內部,有的浮點數無法被精確的表示,在這個例子中,只能使用近似值來表示 1.1。

  • 複數相減
>>> x = 1 + 2j
>>> y = 2 + 3j
>>> y - x
(1 + 1j)

1.3 乘法

  • 整數相乘
>>> 1 + 1
2
  • 浮點數相乘
>>
> 1.1 * 1.1 1.21000000000002

輸出結果為 1.21000000000002,而不是 1.21。在計算機內部,有的浮點數無法被精確的表示,在這個例子中,只能使用近似值來表示 1.21。

  • 複數乘法
>>> (1 + 2j) * 2
(2 + 4j)

1.4 除法

  • 整數除法
>>> 5 // 2
2

在 Python 中,// 是整數除法運算,運算結果是商的整數部分,是一個整數。

  • 浮點數除法
>>> 5 / 2
2.5

在 Python 中,/ 是浮點數除法運算,運算結果是商,是一個浮點數。

  • 複數除法
>>> (2 + 2j)
/ 2 (1 + 1j)

1.5 求模

求模運算返回除法的餘數。

  • 整數求模
>>> 5 % 2
1
  • 浮點數求模
>>> 5.1 / 2
1.09999999999999

輸出結果為 1.09999999999999,而不是 1.1。在計算機內部,有的浮點數無法被精確的表示,在這個例子中,只能使用近似值來表示 1.1。

1.6 冪運算

  • 整數求冪

計算 2 的 3 次方,即 2 * 2 * 2:

>>> 2 ** 3
8
  • 浮點數求冪

計算 1.1 的 3 次方,即 1.1 * 1.1 * 1.1:

>>> 1.1 ** 3
1.33100000000004

1.7 比較運算

Python 提供了 6 種比較運算用於比較數值大小,如下所示:

運算子 功能描述
> 大於
>= 大於或者等於
== 等於
!= 不等於
< 小於
<= 小於等於

比較運算的結果返回 True 或者 False,如下所示:

>>> 2 > 1
True
>>> 2 < 1
False
>>> 2 >= 2
True
>>> 2 <= 2
True
>>> 1 == 1
True
>>> 1 != 1
False

2. 型別轉換

2.1 為什麼要進行型別轉換

假設希望使用者輸入 2 個整數,然後將使用者輸入的整數相加,最後列印結果。在 Python 互動模式下輸入:

>> a = input()
'1'
>> b = input()
'1'
>> a + b
'22'
  • 在第 1 行,使用 input 讀取使用者輸入的一行文字(字串)
  • 在第 2 行,使用者輸入字串 ‘1’
  • 在第 3 行,使用 input 讀取使用者輸入的一行文字(字串)
  • 在第 4 行,使用者輸入字串 ‘2’
  • 在第 4 行,將兩者相加
  • 在第 5 行,得到最終結果 ‘22’,在 Python 中兩個字串相加表示把兩個字串連線起來

最終輸出結果是一個字串 ‘22’,而不是一個整數 2。程式的輸出結果和我們的期望不一致,原因是 input 返回的是一個字串而不是一個整數,我們需要將 input 返回的結果從將字串轉換為整數。

2.2 將字串轉換為整數

Python 提供函式 int 用於將字串轉換為整數。使用 int 函式重寫以上程式如下:

>> a = input()
'1'
>> b = input()
'1'
>> x = int(a)
>> y = int(b)
>> x + y
2
  • 在第 5 行,將字串 a 轉換為整數 x
  • 在第 6 行,將字串 b 轉換為整數 y
  • 在第 7 行,將整數 x 和整數 y 相加,得到結果 2

將 input 返回的結果從將字串轉換為整數後,我們得到了預期的結果。

2.3 將整數轉換為字串

Python 提供函式 str 用於將整數轉換為字串,例如:

>> a = 1
>> b = 1
>> x = str(a)
>> y = str(b)
>> x + y
'11'
  • 在第 3 行,將整數 a 轉換為字串 x
  • 在第 4 行,將整數 b 轉換為字串 y
  • 在第 5 行,將字串 x 和字串 y 相加,得到結果 ‘11’

3. 常用的數學函式

在 Python 的 math 模組中包含如下常用的三角函式,在詞條 “Python 中常用的標準庫系列之 math 模組” 獲取詳細用法。

函式 功能描述
abs(x) 返回數值的絕對值
ceil(x) 返回數值的上入整數
exp(x) 返回 e 的 x 次冪
fabs(x) 返回浮點數的絕對值
floor(x) 返回浮點數的下舍整數
log(x) 返回 x 的自然對數
log10(x) 返回以 10 為基數的 x 的對數
max(x, y) 返回給定引數的最大值
min(x, y) 返回給定引數的最小值
pow(x, y) 返回以 x 為底數、y 為指數的運算結果
round(x) 返回浮點數 x 的四捨五入值
sqrt(x) 返回數值 x 的平方根

4. 常用的三角函式

在 Python 的 math 模組中包含如下常用的三角函式,在詞條 “Python 中常用的標準庫系列之 math 模組” 獲取詳細用法。

函式 功能描述
acos(x) 返回 x 的反餘弦弧度值
asin(x) 返回 x 的反正弦弧度值
atan(x) 返回 x 的反正切弧度值
cos(x) 返回x的弧度的餘弦值
hypot(x, y) 返回歐幾里德範數 sqrt(xx + yy)
sin(x) 返回的x弧度的正弦值
tan(x) 返回x弧度的正切值
degrees(x) 將弧度轉換為角度
radians(x) 將角度轉換為弧度

5. 小結

這節課我們講解了 Python 基本資料型別數值的基本運算和型別轉換和常用函式等。常用的函式需要大家自己多多使用,畢竟熟能生巧。