016 數字類型及操做

1、概述

  • 整數類型
  • 浮點數類型
  • 複數類型
  • 數值運算操做符
  • 數值運算函數

2、整數類型

與數學中整數的概念一致函數

  • 可正可負,沒有取值範圍限制
  • pow(x,y)函數:計算 \(x^y\),想算多大算多大
pow(2, 10)  # 1024
pow(2, pow(2, 5))  # 4294967296

2.1 4種進製表示形式

  • 十進制:1010, 99, -217
  • 二進制,以0b或0B開頭:0b010, -0B101
  • 八進制,以0o或0O開頭:0o123, -0O456
  • 十六進制,以0x或0X開頭:0x9a, -0X89

關於Python整數,就須要知道這些:spa

  • 整數無限制 pow()
  • 4種進製表示形式

3、浮點數類型

與數學中實數的概念一致code

  • 帶有小數點及小數的數字
  • 浮點數取值範圍和小數精度都存在限制,但常規計算可忽略
  • 取值範圍數量級約\(-10^{308}\)\(10^{308}\),精度數量級\(10^{-16}\)

浮點數間運算存在不肯定尾數,不是bug數學

0.1 + 0.3  # 0.4
0.1 + 0.2  # 0.30000000000000004
  • 0.1:53位二進制表示小數部分,約\(10^{-16}\)
    • 0.00011001100110011001100110011001100110011001100110011010 (二進制表示)
    • 0.1000000000000000055511151231257827021181583404541015625 (十進制表示)

二進制表示小數,能夠無限接近,但不徹底相同it

0.1 + 0.2:結果無限接近0.3,但可能存在尾數table

0.1 + 0.2 == 0.3  # False

round(0.1+0.2, 1) == 0.3  # True

3.1 round()函數

  • round(x, d):對x四捨五入,d是小數截取位數
  • 浮點數間運算及比較用round()函數輔助
  • 不肯定尾數通常發生在\(10^{16}\)左右,round()

3.2 科學計數法表示浮點數

  • 使用字母e或E做爲冪的符號,以10爲基數,格式以下:<a>e<b>,表示 a*10b
  • 例如:4.3e-3 值爲0.00439.6E5 值爲 960000.0

關於Python浮點數,須要知道多些。class

  • 取值範圍和精度基本無限制
  • 運算存在不肯定尾數 round()
  • 科學計數法表示

4、複數類型

與數學中複數的概念一致基礎

若是\(x^2\) = -1,那麼x的值什麼?擴展

  • 定義 j = −1 ,以此爲基礎,構建數學體系
  • a+bj 被稱爲複數,其中,a是實部,b是虛部

4.1 複數實例

z = 1.23e-4+5.6e+89j

  • 實部是什麼?z.real 得到實部
  • 虛部是什麼?z.imag 得到虛部

5、數值運算操做符

5.1 一元操做符

操做符是完成運算的一種符號體系

操做符及使用 描述
x+y 加,x與y之和
x-y 減,x與y之差
x*y 乘,x與y之積
x / y 除,x與y之商 10/3 結果是3.3333333333333335
x // y 整數除,x與y之整數商 10//3 結果是3
+ x x自己
- y x的負值
x % y 餘數,模運算,10%3 結果是1
x ** y 冪運算,x的y次冪,\(x^y\),當y是小數時,開放運算,10\*\*0.5結果是\(\sqrt{10}\)

5.2 二元操做符

二元操做符有對應的加強賦值操做符

加強操做符及使用 描述
x op= y x = x op y,其中,op爲二元操做符

二元操做符有如下這些:x += yx -= yx *= yx /= yx // yx %= yx **= y

x = 3.1415

x **= 3  # 與 x = x **3 等價  # 31.003533398375005

5.3 數字類型的關係

類型間可進行混合運算,生成結果爲"最寬"類型

  • 三種類型存在一種逐漸"擴展"或"變寬"的關係:整數 -> 浮點數 -> 複數
  • 例如:123 + 4.0 = 127.0 (整數+浮點數 = 浮點數)

6、數值運算函數

一些以函數形式提供的數值運算功能

函數及使用 描述
abs(x) 絕對值,x的絕對值,abs(-10.01) 結果爲 10.01
divmod(x,y) 商餘,(x//y, x%y),同時輸出商和餘數,divmod(10, 3) 結果爲 (3, 1)
pow(x, y[, z]) 冪餘,(x**y)%z,[..]表示參數z可省略,pow(3, pow(3, 99), 10000) 結果爲 4587
round(x[, d]) 四捨五入,d是保留小數位數,默認值爲0,round(-10.123, 2) 結果爲 -10.12
max(\(x_1,x_2,\cdots,x_n\)) 最大值,返回\(x_1,x_2,\cdots,x_n\)中的最大值,n不限,max(1, 9, 5, 4 3) 結果爲 9
min(\(x_1,x_2,\cdots,x_n\)) 最小值,返回\(x_1,x_2,\cdots,x_n\)中的最小值,n不限,min(1, 9, 5, 4 3) 結果爲 1
int(x) 將x變成整數,捨棄小數部分,int(123.45) 結果爲123; int("123") 結果爲123
float(x) 將x變成浮點數,增長小數部分,float(12) 結果爲12.0; float("1.23") 結果爲1.23
complex(x) 將x變成複數,增長虛數部分,complex(4) 結果爲 4 + 0j

7、小結

  • 整數類型的無限範圍及4種進製表示
  • 浮點數類型的近似無限範圍、小尾數及科學計數法
  • +、-、*、/、//、%、**、二元加強賦值操做符
  • abs()、divmod()、pow()、round()、max()、min()
  • int()、float()、complex()
相關文章
相關標籤/搜索