簡介python
①Python中數字支持如下類型:整型、長整型、布爾型、雙精度浮點型、十進制浮點型和複數dom
②建立數字對象和給變量賦值同樣】函數
③用del刪除對對象的引用。刪除以後,沒法再使用這個引用(變量名),不然會拋出NameError異常spa
>>> a = 123 >>> a 123 >>> del a >>> a Traceback (most recent call last): File "<stdin>", line 1, in <module>NameError : name 'a' is not defined
2.整型code
(1)布爾型 該類型取值範圍只要兩個值:布爾值True 和 布爾值False orm
(2)標準整型 長整型對象
①python標準整型取值範圍是 -231~231-1,也就是-2 147 483 648~2 147 483 648.字符串
②python標準整型等價於C中的長整型io
③整型通常以10進製表示,但python也支持八進制、十六進制。八進制整數以0開始,十六進制整數以0x 或 0X開始ast
④在整型的後面加上大寫的L來代表這是一個長整型
3.浮點型
浮點型一般有一個小數點和一個可選的後綴e表示科學記數法,e後面接指數,e和指數之間用正負號表示指數的正負,正數能夠省略符號。
4.複數
①複數的幾個概念:
虛數不能單獨存在,它們老是和一個實數一塊兒構成複數
複數由實數部分和虛數部分構成
表示虛數的語法:real + imagj
實數部分和虛數部分都是浮點型
虛數部分必須有後綴j或J
②複數的內建屬性:
注:共軛複數是指兩個實部相等、虛部互爲相反數的複數(conjugate complex number)。當虛部不爲0時,共軛複數就是實部相等虛部相反;當虛部爲0時,共軛複數就是其自己。
>>> acomplex = 2.22-1.33j >>> acomplex (2.22-1.33j) >>> acomplex.real 2.22 >>> acomplex.imag 1.33 >>> acomplex.conjugate() (2.22+1.33j)
5.操做符
(1)混合模式操做符
python中不一樣類型的數字相加時,會使用數字類型強制轉換的方式解決數字類型不一致的問題。轉換規則在於:
若是一個操做數是複數,則另外一個操做數被轉換爲複數;
不然,若是有一個是浮點數,另外一個被轉換成浮點數;
不然,若是有一個是長整型,另外一個被轉換成長整型;
不然,二者都是整型,無須轉換
(2)算術操做符
①python中除法包括一下幾種:
傳統除法,操做符"/"。傳統除法的兩個操做數若是都是整型,那麼傳統除法會捨去小數部分,返回一個整型;若是其中一個操做數是浮點數,則執行真正的除法。
>>> 1 / 2 0 >>> 1.0 / 2 0.5
真正的除法是無論操做數是整型仍是浮點型,老是返回真正的商,這是Python將來的標準。現階段,經過執行 from __future__ import division 指令,操縱符"/"不管兩個操做數是整型仍是浮點型,均執行真正的除法
>>> from __future__ import division >>> 1 / 2 0.5 >>> 1.0 / 2 0.5
地板除,python 2.2 引入的新操做符"//",執行地板除,無論操做數是何種類型的數值,老是捨去小數部分,返回比真正的商小的最接近的數字
>>> 1 // 2 0 >>> 1.0 // 2 0.0
②取餘
浮點型取餘按照如下規則:
x % y = x - x // y * y
例如
複數取餘相似浮點型,不一樣點在於商只取實數部分
③位操做符(僅適用於整型)
python整型支持標準位運算:取反(~);按位與(&);按位或(|);異或(^)以及左移(<<)和右移(>>)。位運算是把數字看做二進制來計算
A.取反運算
對一個二進制數按位取反,即0變1,1變0.
十進制數至關於-(num+1)
B.左移、右移
對一個數num左移x,至關於取 num * 2 ** x
右移相反,至關於取 num / 2 ** x
C.按位與/按位或
按照二進制補碼運算 按位與每位按照規則:1&1=1;1&0=0;0&0=0;0&1=0運算。
按位或每位按照規則:1|1=1;1|0=1;0|0=0;0|1=1
如:5的二進制表示是 101,6的二進制表示是110,則按位與是100,即十進制的4;按位或是111,即十進制的7
7的二進制表示是111,8的二進制表示是1000,則按位與是0000,即十進制的0;按位或是1111,即十進制的15
D.異或
按照二進制運算,對應的每位相異時結果爲1,相同時爲0
如9的二進制表示1001,10的二進制表示1010,則按位異或是0011,即十進制的3
11的二進制表示1011,12的二進制表示1100,按位異或是0111,即十進制的7
6.內建函數與工廠函數
(1)轉換工廠函數
int()、long()、float()、complex()函數用來將其餘數值類型轉換爲相應的數值類型,也能夠返回字符串表示的數值
int()、long()能夠接受第二個可選參數,用來將給定的實參轉換成相應進制
>>> int('12', 3) 5
注意 這裏int()若要給定第二個參數時,第一個參數12要以字符串的形式給出;且並非把12轉換爲3進制,而是把12看成3進制的數轉換成10進製表示。
complex()能夠接受兩個參數,第一個參數是複數的實部,第二個參數是複數的虛部,第二個參數默認爲0.
>>> int(1.23) 1 >>> long(123) 123L >>> float(123) 123.0 >>> complex(123) (123+0j) >>> complex(123,456) (123+456j) >>> complex(1.23e-2,1.23e3) (0.0123+1230j)
(2)功能函數
python有5個內建函數用於數值運算,包括abs() coerce() divmod() pow() round()
① abs()
abs()返回給定參數的絕對值。若參數是複數,則返回複數的模,即複數實部和虛部的平方和的正的平方根(math.sqrt(real^2+imag^2)).參數能夠是表達式。
>>> abs(-1) 1 >>> abs(1.1) 1.1 >>> abs(3 + 4j) 5.0 >>> abs(1.22 - 10.22) 9.0
②coerce()
coerce()是一個數據類型轉換函數,接受兩個參數,返回一個包含轉換類型後的兩個數值的元組,轉換的規則相似於不一樣類型數值參與運算時的轉換規則
>>> coerce(1,2) (1,2) >>> >>> coerce(1.3,134L) (1.3,134.0) >>> >>> coerce(1,12L) (1L,12L) >>> >>> (1j,12L) (1j,(12+0j))
③divmod()
divmod()函數結合了除法和取餘,接受兩個參數,被除數和除數,返回一個包含商、餘數的元組。執行的除法都是地板除,餘數經過取餘運算獲得。
>>> divmod(11,3) (3,2) >>> divmod(3,11) (0,3) >>> divmod(3,1.5) (2.0,0.0) >>> divmod(1.5,3) (0.0,1.5) >>> divmod(2+34j,1+17j) ((2+0j),0j) #複數的商僅取實數部分的商
④pow()
pow()和雙星號**功能相似,都是指數運算。pow()接受三個參數,第一個參數是底數,第二個參數是指數,這兩個是必選的;pow()還能夠接受第三個可選參數,若是給出這個參數,pow()先進行指數運算,而後將運算結果和第三個參數進行取餘運算。這個特性主要用於密碼運算,且效率比pow(x,y) % z 好!
>>> pow(2,3) 8 >>> pow(3,2) 9 >>> pow(2,3,3) 2 >>> pow(1+2j,4) (-7-24j)
⑤round()
內建函數round()用來對浮點型進行四捨五入。接受兩個參數第一個是要進行四捨五入的浮點型,第二個可選參數告訴round()函數將結果精確到小數點後指定位數。不指定第二個參數,則返回與第一個參數最接近的整型,即保留小數點後0位(仍然是浮點型)
>>> round(3) 3.0 >>> round(3.45) 3.0 >>> round(3.4999) 3.0 >>> round(3.499999,1) 3.5 >>> round(-3.5) -4.0 >>> round(-3.4) -3.0
⑥int() round() math.floor()區別
函數int()直接截去小數部分,返回值是整型
函數math.floor()獲得最接近原數但小於原數的整型,返回值是浮點型
函數round()按四捨五入的規則進行取整,獲得最接近原數的整型,返回值是浮點型
(3)僅用於整型的函數
Python提供僅適用於整型的內建函數,能夠分爲兩類:一類用於進制轉換;一類用於ASCII轉換
①進制轉換函數
python內建函數oct()接受一個任意進制的整型對象,返回相應的八進制(以0開頭)的字符串對象
內建函數hex()接受一個任意進制的整型對象,返回相應的十六進制(以0X開頭)的字符串對象
>>> oct(25) '031' >>> oct(31) '037' >>> hex(255) '0xff' >>> hex(192) '0xc0'
②ASCII轉換函數
python內建函數chr()接受一個單字節整型值,返回一個字符串,字符串值爲對應的字符
內建函數ord()則相反,接受一個字符,返回其對應的整型值
>>> chr(65) 'A' >>> chr(97) 'a' >>> chr(48) '0' >>> >>> ord('a') 97 >>> ord('A') 65 >>> ord('0') 48
③全家福:
7.其餘數字類型
(1)布爾型
幾條性質:
①布爾值事實上是整型的子類,True對應整型1,False對應整型0
②所以的python對象都有一個內建的True或False值。下列對象的布爾值是False:
None;
False (布爾類型);
全部的值爲零的數;
0 (整型);
0.0(浮點型);
0L (長整型);
0.0+0.0j(複數);
"" (空字符串);
[] (空列表);
() (空元組);
{} (空字典);
值不是上面列出來的任何值的對象的布爾值都是 True,例如 non-empty、 non-zero 等等。 用戶建立的類實例若是定義了 nonzero(__nonzero__())或 length(__len__())且值爲 0,那麼它們的布爾值就是 False。
>>> bool(1) True >>> bool(True) True >>> bool(0) False >>> bool("0") True >>> bool(0.0) False >>> bool(0L) False >>> bool([]) False
8.相關模塊
①python關於數值的常見模塊如圖
②關於random的介紹
例:
>>> import random >>> random.randint(12,23) 16 >>> random.randrange(12,23) 18 >>> random.uniform(12,23) 13.5080332618 >>> random.random() 0.6490402518091863 >>> random.choice([12,15,16,18,19,20]) 20 >>> random.choice([12,15,16,18,19,20]) 16 >>> random.choice([12,15,16,18,19,20]) 19