Python對象類型及其運算方法(詳解)
基本要點:
程序中儲存的所有數(shù)據(jù)都是對象(可變對象:值可以修改 不可變對象:值不可修改)
每個對象都有一個身份、一個類型、一個值
例:
>>> a1 = 'abc' >>> type(a1) str
創(chuàng)建一個字符串對象,其身份是指向它在內(nèi)存中所處的指針(在內(nèi)存中的位置)
a1就是引用這個具體位置的名稱
使用type()函數(shù)查看其類型
其值就是'abc'
自定義類型使用class
對象的類型用于描述對象的內(nèi)部表示及其支持的方法和操作
創(chuàng)建特定類型的對象,也將該對象稱為該類型的實例,實例被創(chuàng)建后,其身份和類型就不可改變
容器:某對象內(nèi)包含對其它對象的引用
對象擁有特有的數(shù)據(jù)屬性和方法,使用點運算符調(diào)用
數(shù)據(jù):變量
方法:函數(shù)
1) 對象的身份和類型
兩個對象比較:
1、值比較:對象中的數(shù)據(jù)是否相同;
2、身份比較:兩個變量名引用的是否為同一對象;
3、類型比較:兩個對象的類型是否相同;
注意:
內(nèi)置函數(shù)id()可返回對象的身份即在內(nèi)存中的位置
is比較兩個對象的身份
type()返回對象的類型
例:
>>> num1 = 5 >>> num2 = 6 >>> num1 == num2 值比較 False >>> num1 is num2 身份比較 True >>> type(num1) is type(num2) 類型比較 True
2)核心數(shù)據(jù)類型
數(shù)字:int, long, float, complex(復數(shù)), bool
字符:str, unicode
列表:list
字典:dict
元組: tuple
文件:file
其它類型:集合(set), frozenset, 類類型, None
3)類型轉(zhuǎn)換
str(), repr()或format():將非字符型數(shù)據(jù)轉(zhuǎn)換為字符;
int(): 轉(zhuǎn)為整數(shù)
float(): 轉(zhuǎn)為浮點數(shù)
list(s): 將字串s轉(zhuǎn)為列表
tuple(s):將字串s轉(zhuǎn)為元組
set(s): 將字串s轉(zhuǎn)為集合
frozenset(s):將字串s轉(zhuǎn)換為不可變集合;
dict(d): 創(chuàng)建字典;其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)數(shù)字類型操作
5種數(shù)字類型:整型、長整型、浮點型、復數(shù)、布爾型
所有數(shù)字類型均不可變
>>> a = 10# 整型
>>> b = 1.5 # 浮點型
>>> c = True # 布爾型
>>> d = 5+2j # 復數(shù)
例:
>>> 1 + 2 3 >>> 1.0 + 2 3.0 >>> 11 % 4 3 >>> 11.0 / 4 2.75
整數(shù)和浮點數(shù)混合運算的結(jié)果是浮點數(shù)

5)布爾類型
bool(布爾型)之所以屬于數(shù)字類型,是因為bool是int的子類。
>>> int(True) 1 >>> int(False) 0 >>> bool(1) True >>> bool(-1) True >>> bool(0) False
結(jié)論:
bool 轉(zhuǎn) int時, Ture-->1, False-->0
int 轉(zhuǎn) bool時, 非0-->True, 0-->False
與運算:只有兩個布爾值都為 True 時,計算結(jié)果才為 True。
>>> True and True True >>> True and False False >>> False and True False >>> False and False False
或運算:只要有一個布爾值為 True,計算結(jié)果就是 True。
>>> True or True True >>> True or False True >>> False or True True >>> False or False False
非運算:把True變?yōu)镕alse,或者把False變?yōu)門rue:
>>> not True False >>> not False True
注意:1、任何非0數(shù)字和非空對象都為真;
2、數(shù)字0、空對象和特殊對象None均為假;
and 和 or 運算的一條重要法則:短路計算。
1. 在計算 a and b 時,如果 a 是 False,則根據(jù)與運算法則,整個結(jié)果必定為 False,因此返回 a;如果 a 是 True,則整個計算結(jié)果必定取決與 b,因此返回 b。
2. 在計算 a or b 時,如果 a 是 True,則根據(jù)或運算法則,整個計算結(jié)果必定為 True,因此返回 a;如果 a 是 False,則整個計算結(jié)果必定取決于 b,因此返回 b。
所以Python解釋器在做布爾運算時,只要能提前確定計算結(jié)果,它就不會往后算了,直接返回結(jié)果。
例:
>>> a = 'python' >>> print 'hello,', a or 'fanison' hello,python >>> b = '' >>> print 'hello,', b or 'fanison' hello,fanison
以上這篇Python對象類型及其運算方法(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
django 實現(xiàn)將本地圖片存入數(shù)據(jù)庫,并能顯示在web上的示例
今天小編就為大家分享一篇django 實現(xiàn)將本地圖片存入數(shù)據(jù)庫,并能顯示在web上的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
pyqt QPlainTextEdit 中捕獲回車的示例代碼
在PyQt的QPlainTextEdit控件中,可以通過重寫keyPressEvent()函數(shù)來捕獲鍵盤事件,這篇文章主要介紹了pyqt QPlainTextEdit 中捕獲回車,需要的朋友可以參考下2024-03-03
python如何獲取tensor()數(shù)據(jù)類型中的值
這篇文章主要介紹了python如何獲取tensor()數(shù)據(jù)類型中的值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07

