基本要點:
程序中儲存的所有數據都是對象(可變對象:值可以修改 不可變對象:值不可修改)
每個對象都有一個身份、一個類型、一個值
例:
>>> a1 = 'abc' >>> type(a1) str
創建一個字符串對象,其身份是指向它在內存中所處的指針(在內存中的位置)
a1就是引用這個具體位置的名稱
使用type()函數查看其類型
其值就是'abc'
自定義類型使用class
對象的類型用于描述對象的內部表示及其支持的方法和操作
創建特定類型的對象,也將該對象稱為該類型的實例,實例被創建后,其身份和類型就不可改變
容器:某對象內包含對其它對象的引用
對象擁有特有的數據屬性和方法,使用點運算符調用
數據:變量
方法:函數
1) 對象的身份和類型
兩個對象比較:
1、值比較:對象中的數據是否相同;
2、身份比較:兩個變量名引用的是否為同一對象;
3、類型比較:兩個對象的類型是否相同;
注意:
內置函數id()可返回對象的身份即在內存中的位置
is比較兩個對象的身份
type()返回對象的類型
例:
>>> num1 = 5>>> num2 = 6>>> num1 == num2 值比較False >>> num1 is num2 身份比較True>>> type(num1) is type(num2) 類型比較True
2)核心數據類型
數字:int, long, float, complex(復數), bool
字符:str, unicode
列表:list
字典:dict
元組: tuple
文件:file
其它類型:集合(set), frozenset, 類類型, None
3)類型轉換
str(), repr()或format():將非字符型數據轉換為字符;
int(): 轉為整數
float(): 轉為浮點數
list(s): 將字串s轉為列表
tuple(s):將字串s轉為元組
set(s): 將字串s轉為集合
frozenset(s):將字串s轉換為不可變集合;
dict(d): 創建字典;其d必須是(key, value)的元組序列
例:
>>> str1 = 'hello,fanison'>>> list(str1)['h', 'e', 'l', 'l', 'o', ',', 'f', 'a', 'n', 'i', 's', 'o', 'n']>>> tuple(str1)('h', 'e', 'l', 'l', 'o', ',', 'f', 'a', 'n', 'i', 's', 'o', 'n')>>> set(str1)set(['a', 'e', 'f', 'i', 'h', 'l', 'o', ',', 's', 'n']) 特別注意!!!去重>>> l1=[('a',1),('b',2),('c',3)]>>> list(l1){'a': 1, 'c': 3, 'b': 2}補充例題:
>>> a = 'ABC'>>> b = a>>> a = 'XYZ'>>> print a b'XYZ' 'ABC'
圖解過程

4)數字類型操作
5種數字類型:整型、長整型、浮點型、復數、布爾型
所有數字類型均不可變
>>> a = 10# 整型
>>> b = 1.5 # 浮點型
>>> c = True # 布爾型
>>> d = 5+2j # 復數
例:
>>> 1 + 23>>> 1.0 + 23.0>>> 11 % 43>>> 11.0 / 4 2.75
整數和浮點數混合運算的結果是浮點數

5)布爾類型
bool(布爾型)之所以屬于數字類型,是因為bool是int的子類。
>>> int(True)1>>> int(False)0>>> bool(1)True>>> bool(-1)True>>> bool(0)False
結論:
bool 轉 int時, Ture-->1, False-->0
int 轉 bool時, 非0-->True, 0-->False
與運算:只有兩個布爾值都為 True 時,計算結果才為 True。
>>> True and True True >>> True and False False >>> False and True False >>> False and False False
或運算:只要有一個布爾值為 True,計算結果就是 True。
>>> True or True True >>> True or False True >>> False or True True >>> False or False False
非運算:把True變為False,或者把False變為True:
>>> not True False >>> not False True
注意:1、任何非0數字和非空對象都為真;
2、數字0、空對象和特殊對象None均為假;
and 和 or 運算的一條重要法則:短路計算。
1. 在計算 a and b 時,如果 a 是 False,則根據與運算法則,整個結果必定為 False,因此返回 a;如果 a 是 True,則整個計算結果必定取決與 b,因此返回 b。
2. 在計算 a or b 時,如果 a 是 True,則根據或運算法則,整個計算結果必定為 True,因此返回 a;如果 a 是 False,則整個計算結果必定取決于 b,因此返回 b。
所以Python解釋器在做布爾運算時,只要能提前確定計算結果,它就不會往后算了,直接返回結果。
例:
>>> a = 'python'>>> print 'hello,', a or 'fanison'hello,python>>> b = ''>>> print 'hello,', b or 'fanison'hello,fanison
以上這篇Python對象類型及其運算方法(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答