Python學習之路8——Python對象2

來源:互聯網
上載者:User

標籤:python   編程   

1.標準類型操作符
1.1對象值的比較

比較操作符用來同類型對象是否相等,所有的內內建類型均支援比較運算,比較運算返回返回布爾值True 或 False。

<span style="font-size:14px;">>>> 2 == 2True>>> 2.33 < 2.44True>>> 'abc' == 'xyz'False>>> 'abc' < 'xyz'True>>> [3, 'abc'] == [3, 'abc']True>>> [3, 'abc'] == ['abc', 3]False>>> 3 < 4 < 7       #same as (3 < 4) and (4 < 7)True>>> 4 > 3 == 3      #same as (4 > 3) and (3 == 3)True</span>

python比較操作符:<    >    <=    >=   ==    !=    <>.(<> 相等於!=, 未來可能不支援)


1.2對象身份比較

Python不只支援對象值比較,也支援對象本身的比較。

                                                  標準類型對象身份比較操作符

操作符 功能
obj1 is obj2 obj1 和obj2 是同一個對象
obj1 is not obj2 obj1 和obj2不 是同一個對

<span style="font-size:14px;">>>> a = [5, 'hat', -9.3]>>> b = a>>> a is bTrue>>> a is not bFalse>>> b = 2.5e-5>>> b2.5e-05>>> a[5, 'hat', -9.3]>>> a is bFalse>>> a is not bTrue</span>
看下面的例子,那麼問題來了
>>> a = 1>>> b = 1>>> a is bTrue>>> x = 1.2>>> y = 1.2>>> x is yFalse>>> 
為什麼a和b指向同一個對象?大家都知道,在變數賦值時,Python解譯器會建立一個新對象,然後將其對象的引用賦給變數。既然如此,那a,b應該指向不同的對象。請大家繼續看x和y,x和y確實是指向不同的對象,這又符合我們的預期結果。why?

原來,整型對象和字串是不可變對象,所有Python會很高效的緩衝它們,這會造成我們認為Python應該建立新對象時,它卻沒有建立新對象的假象。Python僅緩衝簡單整數,Python緩衝的整數的範圍會變化,所以不要使用這個特性。(我也不知道怎麼使用)

1.3布爾類型

布爾類型操作符有and,or 和 not三種,相當於c中的&&, ||,和!。其中not的優先順序最高,其次是and和or。

2 標準類型內建函數

Python提供了一些內建函數用於這些基本物件類型:cmp(), repr(), str(), type()。

type():

用法:type(object)

type()接受一個對象作為參數,並返回它的類型。它的返回值是一個類型對象。

>>> type('helloWorld')<type 'str'>>>> type(2.0)<type 'float'>>>> type(type(4))<type 'type'>>>> 

cmp():

用法:cmp(obj1,obj2),如果obj1 小於obj2,它會返回一個負整數,如果obj1 大於 obj2,則返回一個正整數,如果相等則返回0

>>> a, b = 4, -12>>> cmp(a, b)1>>> cmp(b,a)-1>>> b = -4>>> cmp(a,b)1>>> a, b = 'abc', 'xyz'>>> cmp(a, b)-1>>> cmp(b, a)1>>> b = 'abc'>>> cmp(a, b)0>>> 


str() 和repr()

str()和repr()函數可以方便的以字串的方式擷取對象的內容,類型,數值屬性等資訊,str()函數得到的字串可讀性好,而repr()函數得到的字串通常可以重新獲得該對象,通常情況下obj = eval(repr(obj))是成立的。多數情況下,這兩個函數的輸出仍然是一樣的。

<span style="font-size:14px;">>>> str(1)'1'>>> str(2e10)'20000000000.0'>>> repr(2e10)'20000000000.0'>>> str([0, 5, 5, 9])'[0, 5, 5, 9]'>>> repr([0, 5, 5, 9])'[0, 5, 5, 9]'</span>





Python學習之路8——Python對象2

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.