4-1 Python 對象。與所有 Python 對象有關(guān)的三個屬性是什么?請簡單的描述一下。
身份:對象的唯一標(biāo)識
類型 :對象的類型決定了該對象可以保存什么類型的值
值:對象表示的數(shù)據(jù)項
4-2 類型。不可更改(immutable)指的是什么?Python 的哪些類型是可更改的(mutable),哪些不是?
不可更改(immutable)指的是不允許對象的值被更改。
可變類型:列表、字典。
不可變類型:數(shù)字、字符串、元組。
可從id()判斷是否可更改
4-3 類型。哪些 Python 類型是按照順序訪問的,它們和映射類型的不同是什么?
字符串、列表和元祖都是通過順序訪問。
序列類型是指容器內(nèi)的元素按從0開始的索引順序訪問。一次可以訪問一個元素或多個元素。雖然字符串是簡單文字類型,但因為它有能力按照順序訪問子字符串,所以也將它歸到序列類型。
映射類型類似序列的索引屬性,不過它的索引并不使用順序的數(shù)字偏移量取值,它的元素?zé)o序存放,通過唯一的鍵來訪問,也就是映射類型。它容納的是哈希鍵-值對集合。
4-4 type()。內(nèi)建函數(shù) type()做什么?type()返回的對象是什么?
type()檢測對象的類型的函數(shù),type()返回的對象時對象的類型.
4-5 str() 和 rePR()。內(nèi)建函數(shù) str()與 repr()之間的不同是什么?哪一個等價于反引號(``)運(yùn)算符?。 str()致力于生成一個對象的可讀性好的字符串表示,它的返回結(jié)果通常無法用于eval()求值。repr()和('')做的是完全一樣的事情,它們返回的是一個對象的“官方”字符串表示,也就是說絕大多數(shù)情況下可以通過求值運(yùn)算(使用內(nèi)建函數(shù)eval())重新得到該對象。
簡而言之,str()輸出的字符串對用戶比較友好,repr()輸出的字符串對python比較友好。
4–6 對象相等。您認(rèn)為 type(a) == type(b)和 type(a) is type(b)之間的不同是什么?為什么會選擇后者?函數(shù) isinstance()與這有什么關(guān)系?
type(a)==type(b)比較的是對象的數(shù)值而不是對象本身,type(a) is type(b)通過對象類型屬性對比,isinstance()也是通過對象類型屬性對比
4-7 內(nèi)建函數(shù) dir()。在第二章的幾個練習(xí)中,我們用內(nèi)建函數(shù) dir()做了幾個實驗,它接受一個對象,然后給出相應(yīng)的屬性。請對 types 模塊做相同的實驗。記下您熟悉的類型,包括您對這些類型的認(rèn)識,然后記下你還不熟悉的類型。在學(xué)習(xí) Python 的過程中,你要逐步將
“不熟悉”的類型變得“熟悉”起來。
4-8 列表和元組。列表和元組的相同點是什么?不同點是什么?
列表和元組相同點都是順序訪問,不同點是列表可以更改,元組不可更改。
4-9 練習(xí),給定以下賦值:
a = 10 b = 10 c = 100 d = 100 e = 10.0 f = 10.0 請問下面各表達(dá)式的輸出是什么?為什么? 在python中,整型和字符串對象時不可變對象,Python會很高效地緩存他們,會造成我們認(rèn)為Python應(yīng)該創(chuàng)建新對象時,它卻沒有創(chuàng)建新對象的假象。所以,在前兩個整型做比較時返回為true,浮點型做比較時返回為false