數字不可更改
數字的分類
整形
布爾型
Boolean型的有兩個值:True / False。這兩個值分別對應0和1
標準類型整數
32位機器上是32位整數,64位機器上是64位整數
普通:123, -567
8進制:012
16進制:0x2A
長整形
表示方式:1000L。注:str()返回1000,repr()返回1000L
范圍:內存大小為限,可以任意大
與普通整形的結合:在整數運算超出范圍之后,會自動把整形轉換成長整形
浮點數
名字:float
類型:雙精度浮點數,IEEE754
復數
表示法:a + bj
要求:
實部虛部的a和b都是浮點數
虛部不能單獨存在。即:0.0 + bj才能表示實部為0的復數
虛部必須有后綴j或者J
內建屬性:
eg : com = 3 + 4j
com.real : 實部
com.imag : 虛部
com.conjugate() : 返回共軛復數對象
數字的運算
運算結果的類型
自動提升:
如果有一個操作數是復數,則提升為復數
否則,如果有一個浮點數,提升為浮點數
否則,如果有一個長整形,則提升為長整形
其他:整數
coerce()函數定義了自動提升的規則
運算符(略)
數字相關函數
內建函數
支持cmp(), str(), repr(), type()
工廠函數
bool(obj) 返回obj對象的布爾值,也就是obj.__nonzero__()方法的返回值
int(obj, base=10) 返回一個字符串或數值對象的整數表示, 類似string.atoi();從Python 1.6起,引入了可選的進制參數。
long(obj, base=10) 返回一個字符或數據對象的長整數表示,類似string.atol(), 從Python1.6起,引入了可選的進制參數
float(obj) 返回一個字符串或數據對象的浮點數表示,類似string.atof()
complex(str) or
complex(real, imag=0.0) 返回一個字符串的復數表示,或者根據給定的實數(及一個可選的虛數部分)生成一個復數對象。
功能函數
abs() : 獲得絕對值,對于complex,則返回math.sqrt(num.real + num.imag)
coerce() : 定義計算時遇到不同操作數類型的行為
divmod() : 返回(商,余數)
pow() : 與**類似,進行指數運算。此外,可以使用pow(x,y,z),值為pow(x,y) % z,但性能更好。通常用于密碼運算
round() : 四舍五入
1. int() : 工廠函數,直接截去小數部分。返回整數。int(3.9) 值為3
2. math.floor() : 得到最接近但是小于原數的整數。返回值為浮點數
3. round() : 四舍五入。返回值為浮點數
僅用于整數的函數
進制轉換
1. hex(255) >>>>'0xff'
2. oct(255) >>>>'0377'
注:轉換之后結果為字符串
ASCII轉換
ord('A') >>>> 65
chr(65) >>>> 'A'
!!!!!!強烈注意:!!!!!!這兩個不支持Unicode!!!!
十進制浮點數Decimal
問題:2進制表示浮點數有精度損失
解決:Decimal
例子:TestDecimal.py
其他數學模塊
模塊 介紹
decimal 十進制浮點運算類 Decimal
array 高效數值數組(字符,整數,浮點數等等)
math/cmath 標準C庫數學運算函數。常規數學運算在match模塊,復數運算在cmath模塊
operator 數字運算符的函數實現。比如 tor.sub(m,n)等價于 m - n
random 多種偽隨機數生成器