016 數字型別及操作
阿新 • • 發佈:2020-12-13
目錄
一、概述
- 整數型別
- 浮點數型別
- 複數型別
- 數值運算操作符
- 數值運算函式
二、整數型別
與數學中整數的概念一致
- 可正可負,沒有取值範圍限制
pow(x,y)
函式:計算 xyxy ,想算多大算多大
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整數,就需要知道這些:
- 整數無限制
pow()
- 4種進製表示形式
三、浮點數型別
與數學中實數的概念一致
- 帶有小數點及小數的數字
- 浮點數取值範圍和小數精度都存在限制,但常規計算可忽略
- 取值範圍數量級約−10308−10308 至1030810308 ,精度數量級10−1610−16
浮點數間運算存在不確定尾數,不是bug
0.1 + 0.3 # 0.4
0.1 + 0.2 # 0.30000000000000004
0.1
:53位二進位制表示小數部分,約10−1610−16- 0.00011001100110011001100110011001100110011001100110011010 (二進位制表示)
- 0.1000000000000000055511151231257827021181583404541015625 (十進位制表示)
二進位制表示小數,可以無限接近,但不完全相同
0.1 + 0.2
:結果無限接近0.3,但可能存在尾數
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(
)函式輔助 - 不確定尾數一般發生在1016
round()
3.2 科學計數法表示浮點數
- 使用字母e或E作為冪的符號,以10為基數,格式如下:
<a>e<b>
,表示a*10b
- 例如:
4.3e-3
值為0.0043
,9.6E5
值為960000.0
關於Python浮點數,需要知道多些。
- 取值範圍和精度基本無限制
- 運算存在不確定尾數 round()
- 科學計數法表示
四、複數型別
與數學中複數的概念一致
如果x2x2 = -1,那麼x的值什麼?
- 定義
j = −1
,以此為基礎,構建數學體系 a+bj
被稱為複數,其中,a是實部,b是虛部
4.1 複數例項
z = 1.23e-4+5.6e+89j
- 實部是什麼?
z.real
獲得實部 - 虛部是什麼?
z.imag
獲得虛部
五、數值運算操作符
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次冪,xyxy
,當y是小數時,開放運算,10\*\*0.5 結果是10−−√10
|
5.2 二元操作符
二元操作符有對應的增強賦值操作符
增強操作符及使用 | 描述 |
---|---|
x op= y | 即 x = x op y ,其中,op為二元操作符 |
二元操作符有以下這些:x += y
, x -= y
, x *= y
, x /= y
, x // y
, x %= y
, x **= y
x = 3.1415
x **= 3 # 與 x = x **3 等價 # 31.003533398375005
5.3 數字型別的關係
型別間可進行混合運算,生成結果為"最寬"型別
- 三種類型存在一種逐漸"擴充套件"或"變寬"的關係:整數 -> 浮點數 -> 複數
- 例如:
123 + 4.0 = 127.0
(整數+浮點數 = 浮點數)
六、數值運算函式
一些以函式形式提供的數值運算功能
函式及使用 | 描述 |
---|---|
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(x1,x2,⋯,xnx1,x2,⋯,xn ) | 最大值,返回x1,x2,⋯,xnx1,x2,⋯,xn 中的最大值,n不限,max(1, 9, 5, 4 3) 結果為 9 |
min(x1,x2,⋯,xnx1,x2,⋯,xn ) | 最小值,返回x1,x2,⋯,xnx1,x2,⋯,xn 中的最小值,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 |
七、小結
- 整數型別的無限範圍及4種進製表示
- 浮點數型別的近似無限範圍、小尾數及科學計數法
- +、-、*、/、//、%、**、二元增強賦值操作符
- abs()、divmod()、pow()、round()、max()、min()
- int()、float()、complex()