Python入門篇之對象類型
Python使用對象模型來存儲數據。構造任何類型的值都是一個對象
所有的Python對象都擁有三個特性:身份、類型、值
身份:
每一個對象都有一個唯一的身份來標志自己,任何對象的身份可以使用內建函數id()來得到。這個值可以被認為是該對象的內存地址
類型:
對象的類型決定了該對象可以保存什么類型的值,可以進行怎樣的操作,以及遵循什么樣的規(guī)則,可以使用內建函數type()查看Python對象的類型:
>>> type([1,2])
<type 'list'>
>>> type(24)
<type 'int'>
>>> type({1,2,3})
<type 'set'>
>>> type('a string')
<type 'str'>
type()返回的是對象而不是簡單的字符串。
值:對象表示的數據項
以上的三個特性在對象創(chuàng)建的時候就被賦值,除此之外,其他兩個特性都是只讀的
標準類型/基礎數據類型:
數字、整型、布爾型、長整形、浮點型、復數型、字符串、列表、元組、字典
其他內建類型:
類型、Null對象(None)、文件、集合/固定集合、函數/方法、模塊、類
None,Python的Null對象
Python有一個特殊的類型,稱為Null對象或者NoneType,只有一個值:None,它不支持任何運算也沒有任何內建的方法,類似于C語言的void,None類型的值
和C中的Null值非常相似
None沒有什么有用的屬性,它的布爾值總是False
布爾值
所有標準對象均可以用于布爾測試,同類型的對象之間可以比較大小。每一個對象天生具有布爾True或false值
空對象、值為0的任意數字或Null對象None的布爾值都是False
下列對象的布爾值都是False:
None
False(布爾類型)
所有的值為0的數
0(整型)
(浮點型)
0L(長整型)
0.0+0.0j(復數)
“”(空字符串)
[](空列表)
()(空元組)
{}(空字典)
值不是上面列出來的任何值的對象的布爾值都是True
標準類型運算符:
比較運算符用來判斷同類型對象是否相等,所有的內建類型均支持比較運算,比較運算返回布爾值True或False
>>> 2==2
True
>>> 2.34<=3.44
True
>>> 'abc'=='xyz'
False
>>> 'xyz'>'abc'
True
>>> 'xyz'<'abc'
False
>>> [3,'abc']==['abc',3]
False
>>> [3,'abc']==[3,'abc']
True
多個比較操作可以在同一行上進行,求值順序為從左到右.例如:
>>> 3<4<5 #等價于 (3<4)and(4<5)
True
>>> 4>3==3 #等價于(4>3)and(3==3)
True
>>> 4<3<5!=2<7
False
標準類型值比較運算符:
對象身份比較
每個對象都天生具有一個計數器,記錄它自己的引用次數。這個數目表示有多少個變量指向該對象
Python提供了is和is not運算符來測試兩個變量是否指向同一個對象
a is b 等價于 id(a)==id(b)
>>> foo2=foo1
>>> foo1 is foo2
True
>>> foo1 is not foo2
False
>>> id(foo1)==id(foo2)
True
>>>
布爾類型
布爾邏輯運算符and,or,not都是Python關鍵字,這些運算符的優(yōu)先級按從高到低的順序如下:
標準類型布爾運算符:
>>> x,y=3.1415926,-1024
>>> x<5.0
True
>>> not(x<5.0)
False
>>> (x<5.0) or (y>2.71828)
True
>>> (x<5.0) and (y>2.71828)
False
>>> not(x is y)
True
標準類型內建函數
Python提供了一些內建函數用于這些基本對象類型:
cmp(), repr(), str(), type()和等同于repr()函數的單反引號('')運算符
type()接受一個對象作為參數,并返回它的類型。它的返回值是一個類型對象。
>>> type(4)
<type 'int'>
>>> type('hello!')
<type 'str'>
>>> type(type(4))
<type 'type'>
cmp()用于比較兩個對象obj1和obj2,如果obj1<obj2返回-1,如果obj1>obj2返回1,如果obj1==obj2返回0,行為類似于C中的strcmp()函數,比較是在對象之間進行的
>>> a,b=-4,12
>>> cmp(a,b)
-1
>>> cmp(b,a)
1
>>> b=-4
>>> cmp(a,b)
0
>>> a,b='abc','xyz'
>>> cmp(a,b)
-1
>>> cmp(b,a)
1
>>> b='abc'
>>> cmp(a,b)
0
str()和repr()(及''運算符)
內建函數str()和repr()或反引號運算符('')可以方便的以字符串的方式獲得對象的內容、類型、數值屬性等信息。
str()函數得到的字符串可讀性好,而repr()函數得到的字符串通??梢杂脕碇匦芦@得該對象
>>> str(4.53-2j)
'(4.53-2j)'
>>> str(1)
'1'
>>> str(2e10)
'20000000000.0'
>>> str([0,5,9,9])
'[0, 5, 9, 9]'
>>> repr([0,5,9,9])
'[0, 5, 9, 9]'
>>> '[0,5,9,9]'
'[0,5,9,9]'
str()和repr()和''運算在特性和功能方面都非常的相似,repr()和''做的事情完全一樣,返回的是一個對象的官方字符串表示,可以通過求值運算(使用eval()內建函數)重新得到該對象,但是str()函數則有所不同,它可以生成一個對象的可讀性好的字符串表示,返回結果無法用于eval()求值,但是很適合用于print語句輸出。
標準類型運算符和內建函數
相關文章
opencv中顏色空間轉換函數cv2.cvtColor()使用
本文主要介紹了opencv中顏色空間轉換函數cv2.cvtColor()使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05Python實現(xiàn)功能全面的學生管理系統(tǒng)
這篇文章主要為大家詳細介紹了Python實現(xiàn)功能全面的學生管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05基于Matplotlib?調用?pyplot?模塊中?figure()?函數處理?figure圖形對象
這篇文章主要介紹了基于Matplotlib?調用?pyplot?模塊中?figure()?函數處理?figure圖形對象,matplotlib.pyplot模塊能夠快速地生成圖像,但如果使用面向對象的編程思想,我們就可以更好地控制和自定義圖像,下面就來詳細介紹其內容,需要的朋友可以參考下2022-02-02利用Python繪制MySQL數據圖實現(xiàn)數據可視化
這篇文章主要介紹了利用Python繪制MySQL數據圖實現(xiàn)數據可視化,其中包括Python與MySQL的連接搭建、用Python執(zhí)行MySQL語句查詢等內容,需要的朋友可以參考下2015-03-03python實現(xiàn)切割url得到域名、協(xié)議、主機名等各個字段的例子
今天小編就為大家分享一篇python實現(xiàn)切割url得到域名、協(xié)議、主機名等各個字段的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07