《Python核心編程》第二版第75頁第四章練習

來源:互聯網
上載者:User

4-1.
Python對象。與所有Python對象有關的三個屬性是什嗎?請簡單的描述一下。
【答案】
所有的Python對象都擁有三個特性:身份,類型和值。
身份:每一個對象都有一個唯一的身份標識自己,任何對象的身份可以使用內建函數id()來得到。這個值可以被認為是該對象的記憶體位址。
類型:對象的類型決定了該對象可以儲存什麼類型的值,可以進行什麼樣的操作,以及遵循什麼樣的規則。可以使用內建函數type()查看對象的類型。在Python中類型也是對象。
值:對象表示的資料項目。

4-2.
類型。不可更改(immutable)指的是什嗎?Python的哪些類型是可更改(mutable)的,哪些不是?
【答案】這部分答案是網上找到的。
如果對象支援更新操作,那麼它的值就可以改變,否者它的值也是唯讀。對象的值是否可以更改被稱為對象的可改變性(mutablility)。
不可更改指更改後會產生新的對象(id),可更改則相反。
mutable的類型有:list、dict
immutable的類型有:str、int和tuple

4-3.
類型。哪些Python類型是按照順序訪問的,他們和映射類型的不同是什嗎?
【答案】
根據訪問被儲存的資料的方式可以對資料類型進行分類。訪問方式有三種:直接存取、順序和映射。
所有的數實值型別是按照直接存取訪問的。
字串、列表、元組是按照順序訪問的。這是指元素按照從0開始的索引順序訪問。
字典是映射訪問。在字典裡的元素,它們的索引並不使用順序的數字位移量取值,它的元素無序存放,通過一個唯一的鍵來訪問。
目前只有唯一一種映射類型就是dict。

4-4.
type()。內建函數type()作什嗎?type()返回的對象是什嗎?
【答案】這部分答案是網上找到的。
內建函數type()返回任意Python對象的資料類型,而不局限於標準類型。在types模組中列出了可能的資料類型。這對於處理多種資料類型的協助者函數非常有用。

【參考】推薦一個網站:Python研究(Dive Into Python)
http://woodpecker.org.cn/diveintopython/index.html

4-5.
str()和repr()。內建函數str()與repr()之間的不同是什嗎?哪一個等價於反引號(``)操作符?
【答案】
內建函數str()和repr()或反引號操作符(``)可以方便地以字串的方式擷取對象的內容、類型、數值屬性等資訊。str()函數得到的字串可讀性好,而repr()函數得到的字串通常可以用來重新獲得該對象,通常情況下obj== eval(repr(obj))這個等式是成立的。這兩個函數接受一個對象作為其參數,返回適當的字串。
repr()輸出對Python比較友好,而str()的輸出對使用者比較友好。
``==repr(),但反引號(``)操作符已經不鼓勵繼續使用。
str()致力於產生一個對象的可讀性好的字串表示,它的返回結果通常無法用於eval()求值。

4-6.
對象相等。你認為type(a) == type(b)和type(a) is type(b)之間的不同是什嗎?為什麼會選者後者?函數isinstance()與這有什麼關係?
【答案】這部分答案是網上找到的。
“==”比較的是值,is比較的是對象。因為每個對象只可能有一種類型的值,所以可以直接比較他們id,而不用先計算值再做比較。
函數isinstance()用來確定這個對象是否屬於這個類型,或者執行個體是否屬於某個類。

4-7.
內建函數dir()。在第2章的幾個練習中,我們用內建函數dir()做了幾個實驗,它接受一個對象,然後給出相應的屬性。請對types模組做相同的實驗。記下你熟悉的類型,包括你對這些類型的認識,然後記下你還不熟悉的類型。在學習Pythopn的過程中,你要逐步將“不熟悉”的類型變得“熟悉”起來。
【答案】
略。

4-8.
列表和元組。列表和元組的相同點是什嗎?不同點是什嗎?
【答案】這部分答案是網上找到的。
列表是處理一組有序項目的資料結構,即你可以在一個列表中儲存一個序列的項目。列表中的項目。列表中的項目應該包括在方括弧中,這樣python就知道你是在指明一個列表。一旦你建立了一個列表,你就可以添加,刪除,或者是搜尋列表中的項目。由於你可以增加或刪除項目,我們說列表是可變的資料類型,即這種類型是可以被改變的。列表是可以嵌套的。
元祖和列表十分相似,不過元組是不可變的。即你不能修改元組。元組通過圓括弧中用逗號分隔的項目定義。元組通常用在使語句或使用者定義的函數能夠安全的採用一組值的時候,即被使用的元組的值不會改變。元組可以嵌套。

【參考】http://hi.baidu.com/pangpengde/blog/item/3c782b008e8b33db277fb510.html/cmtid/7f7b96282f2284f098250a2f

4-9.
實踐,給定以下賦值:
a = 10
b = 10
c = 100
d = 100
e = 10.0
f = 10.0
請問下面各運算式的輸出是什嗎?為什嗎?
(a) a is b
(b) c is d
(c) e is f
【答案】
代碼如下:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\root>python
Python 2.7 (r27:82525, Jul  4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 10
>>> b = 10
>>> c = 100
>>> d = 100
>>> e = 10.0
>>> f = 10.0
>>> a is b
True
>>> c is d
True
>>> e is f
False
>>>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.