1.全部的python對象都擁有三個特性:python
①身份:每一個對象都有惟一的身份標識本身,可用內建函數id()來獲得。基本不會用到,不用太關心緩存
>>> a = 2 >>> id(2) 39411616L >>> id(a) 39411616L
這個例子也同時說明python中賦值實際上是"引用"函數
②類型:對象的類型決定能夠保存什麼類型的值。用內建函數type()能夠獲得對象的類型。spa
>>> type(2) <type 'int'> >>> type(2.0) <type 'float'> >>> type(111111111111111111111111) <type 'long'> >>> type('2') <type 'str'> >>> type(False) <type 'bool'>
>>> type(3.14j)
<type 'complex') >>> type(type) <type 'type'>
③值:對象表示的數據code
除了值,對象的其餘兩個特性都是隻讀的對象
2.標準類型blog
python標準類型也稱爲「基本數據類型」,由於這些類型是python內建的基本數據類型。主要包括:字符串
①Integer 'int' 整型it
②Long integer 'long' 長整型io
③Floating point real number 'float' 浮點型
④Complex number 'complex' 複數型
⑤Boolean 'bool' 布爾型
⑥String 'str' 字符串
⑦List 'list' 列表
⑧Tuple 'tuple' 元組
⑨Dictionary 'dict' 字典
3.其餘內建類型
(1)其餘數據類型包括:
類型
Null對象(None)
文件
集合/固定集合
函數/方法
模塊
類
(2)類型對象
①type()函數的輸出其實是一個類型對象,是一個輸出了字符串的類型對象
②全部類型對象的類型都是type。
(3)Null對象
Null對象是python中一個特殊的類型,亦稱爲NoneType。它只有一個值,就是None,不支持任何運算也沒有任何內建方法。
(4)筆記
4.標準類型操做符
(1)對象值的比較
比較操做符用來判斷同類型對象是否相等,因此內建類型均支持比較運算,比較運算返回布爾值True或者False。
實際進行的比較運算因類型而異,好比數字類型根據數值的大小和符號比較,字符串按照字符序列值進行比較,等等。
如圖例
多個比較操做符能夠在同一行進行,順序爲從左到右
附:標準類型值比較操做符
(2)對象身份比較
標準類型值比較操做是針對對象的值進行的,比較的是對象的數值而不是對象自己。python一樣支持對對象自己的比較,做爲對對象值比較的補充。
標準類型對象身份比較操做符:
具體操做:
在上面例子中,在對a、b分別進行列表賦值時,python分別爲a b 建立了不一樣的對象,即便二者的值相等,a b自己仍不相等;
然而在對a b進行整型賦值時,分別賦值的結果倒是a b自己也相等
這種狀況的緣由是,python會緩存簡單的整型,因此a b會指向同一個對象,'a is b' 纔會返回True。在python 2.7中,緩存的簡單整型範圍是(-5,256)
①驗證上限方法
1 num1 = 0 2 num2 = 0 3 while True: 4 if num1 is not num2: 5 print "%d is the upper limit!" % (num1-1) 6 break 7 num1 += 1 8 num2 += 1 9 10 輸出:256 is the upper limit! 11 12
②驗證下限方法
num1 = 0 num2 = 0 while True: if num1 is not num2: print "%d is the lower limit!" % (num1+1) break num1 += -1 num2 += -1 輸出: -5 is the lower limit!
(3)布爾類型
布爾邏輯操做符包括not、and、or
其中,not優先級最高,and次之,or最低
5.標準類型內建函數
標準類型內建函數包括:
(1)type()函數
type()接受一個對象做爲參數,返回參數的類型,返回值是一個類型對象
(2)cmp()
內建函數cmp()用於比較兩個對象obj1和obj2:若obj1小於obj2,則返回一個負整型;若obj1大於obj2,則返回一個正整型;若obj1等於obj2則返回0。
(3) str() repr() ``
三者均可以方便的以字符串的方式獲取對象的內容、類型、數值屬性等信息。
str()函數獲得的字符串可讀性好,返回結果一般沒法用eval()取值,但很適合用於print語句輸出
repr()和``運算在特性和功能上都很是類似,他們返回一個對象的"官方"字符串表示,絕大多數狀況下能夠經過求值運算eval()從新取得該對象。
總之,repr()輸出對python較爲友好,str()輸出對用戶更爲友好,不少狀況下三者的輸出是徹底同樣的
(4) type() isinstance()
isinstance()是python的一個內建函數,語法是isinstance(object,classinfo)。第一個參數是對象,第二個參數是類型或類型組成的元組,返回的值是布爾型。若對象的類型與第二個參數的類型相同或者對象的類型與做爲元組給出的第二個參數中的某一個類型相同,則返回True。不然,返回False