Python對象類型及其運(yùn)算方法(詳解)
基本要點(diǎn):
程序中儲(chǔ)存的所有數(shù)據(jù)都是對象(可變對象:值可以修改 不可變對象:值不可修改)
每個(gè)對象都有一個(gè)身份、一個(gè)類型、一個(gè)值
例:
>>> a1 = 'abc' >>> type(a1) str
創(chuàng)建一個(gè)字符串對象,其身份是指向它在內(nèi)存中所處的指針(在內(nèi)存中的位置)
a1就是引用這個(gè)具體位置的名稱
使用type()函數(shù)查看其類型
其值就是'abc'
自定義類型使用class
對象的類型用于描述對象的內(nèi)部表示及其支持的方法和操作
創(chuàng)建特定類型的對象,也將該對象稱為該類型的實(shí)例,實(shí)例被創(chuàng)建后,其身份和類型就不可改變
容器:某對象內(nèi)包含對其它對象的引用
對象擁有特有的數(shù)據(jù)屬性和方法,使用點(diǎn)運(yùn)算符調(diào)用
數(shù)據(jù):變量
方法:函數(shù)
1) 對象的身份和類型
兩個(gè)對象比較:
1、值比較:對象中的數(shù)據(jù)是否相同;
2、身份比較:兩個(gè)變量名引用的是否為同一對象;
3、類型比較:兩個(gè)對象的類型是否相同;
注意:
內(nèi)置函數(shù)id()可返回對象的身份即在內(nèi)存中的位置
is比較兩個(gè)對象的身份
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(復(fù)數(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)為浮點(diǎ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}
補(bǔ)充例題:
>>> a = 'ABC' >>> b = a >>> a = 'XYZ' >>> print a b 'XYZ' 'ABC'
圖解過程
4)數(shù)字類型操作
5種數(shù)字類型:整型、長整型、浮點(diǎn)型、復(fù)數(shù)、布爾型
所有數(shù)字類型均不可變
>>> a = 10# 整型
>>> b = 1.5 # 浮點(diǎn)型
>>> c = True # 布爾型
>>> d = 5+2j # 復(fù)數(shù)
例:
>>> 1 + 2 3 >>> 1.0 + 2 3.0 >>> 11 % 4 3 >>> 11.0 / 4 2.75
整數(shù)和浮點(diǎn)數(shù)混合運(yùn)算的結(jié)果是浮點(diǎn)數(shù)
5)布爾類型
bool(布爾型)之所以屬于數(shù)字類型,是因?yàn)閎ool是int的子類。
>>> int(True) 1 >>> int(False) 0 >>> bool(1) True >>> bool(-1) True >>> bool(0) False
結(jié)論:
bool 轉(zhuǎn) int時(shí), Ture-->1, False-->0
int 轉(zhuǎn) bool時(shí), 非0-->True, 0-->False
與運(yùn)算:只有兩個(gè)布爾值都為 True 時(shí),計(jì)算結(jié)果才為 True。
>>> True and True True >>> True and False False >>> False and True False >>> False and False False
或運(yùn)算:只要有一個(gè)布爾值為 True,計(jì)算結(jié)果就是 True。
>>> True or True True >>> True or False True >>> False or True True >>> False or False False
非運(yùn)算:把True變?yōu)镕alse,或者把False變?yōu)門rue:
>>> not True False >>> not False True
注意:1、任何非0數(shù)字和非空對象都為真;
2、數(shù)字0、空對象和特殊對象None均為假;
and 和 or 運(yùn)算的一條重要法則:短路計(jì)算。
1. 在計(jì)算 a and b 時(shí),如果 a 是 False,則根據(jù)與運(yùn)算法則,整個(gè)結(jié)果必定為 False,因此返回 a;如果 a 是 True,則整個(gè)計(jì)算結(jié)果必定取決與 b,因此返回 b。
2. 在計(jì)算 a or b 時(shí),如果 a 是 True,則根據(jù)或運(yùn)算法則,整個(gè)計(jì)算結(jié)果必定為 True,因此返回 a;如果 a 是 False,則整個(gè)計(jì)算結(jié)果必定取決于 b,因此返回 b。
所以Python解釋器在做布爾運(yùn)算時(shí),只要能提前確定計(jì)算結(jié)果,它就不會(huì)往后算了,直接返回結(jié)果。
例:
>>> a = 'python' >>> print 'hello,', a or 'fanison' hello,python >>> b = '' >>> print 'hello,', b or 'fanison' hello,fanison
以上這篇Python對象類型及其運(yùn)算方法(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用python實(shí)現(xiàn)CGI環(huán)境搭建過程解析
這篇文章主要介紹了使用python實(shí)現(xiàn)CGI環(huán)境搭建過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04django做form表單的數(shù)據(jù)驗(yàn)證過程詳解
這篇文章主要介紹了django做form表單的數(shù)據(jù)驗(yàn)證過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07發(fā)工資啦!教你用Python實(shí)現(xiàn)郵箱自動(dòng)群發(fā)工資條
這篇文章主要介紹了發(fā)工資啦!教你用Python實(shí)現(xiàn)郵箱自動(dòng)群發(fā)工資條,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05基于Python的socket庫實(shí)現(xiàn)通信功能的示例代碼
本文主要給大家介紹了如何使用python的socket庫實(shí)現(xiàn)通信功能,這里簡單的給每個(gè)客戶端增加一個(gè)不重復(fù)的uid,客戶端之間可以根據(jù)這個(gè)uid選擇進(jìn)行廣播通信,感興趣的小伙伴快來看看吧2023-08-08python3實(shí)現(xiàn)字符串操作的實(shí)例代碼
這篇文章主要介紹了python3實(shí)現(xiàn)字符串操作的實(shí)例代碼,需要的朋友可以參考下2019-04-04Pycharm主題切換(禁用)導(dǎo)致UI界面顯示異常的解決方案
這篇文章主要介紹了Pycharm主題切換(禁用)導(dǎo)致UI界面顯示異常的原因分析和解決方案,文中通過圖文結(jié)合的方式給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06