基本要點:
程序中儲存的所有數據都是對象(可變對象:值可以修改 不可變對象:值不可修改)
每個對象都有一個身份、一個類型、一個值
例:
>>> 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 + 2 3 >>> 1.0 + 2 3.0 >>> 11 % 4 3 >>> 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對象類型及其運算方法(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
