4-1
- ID值 內(nèi)存的地址值馍忽,可以有id( ) 函數(shù)查看
- 類型 每種Python對象都有一種類型型宝,可由 type( )函數(shù)查看
- 值 對象的數(shù)據(jù)項(xiàng)
4-2
不可更改指的是Python某個對象的值經(jīng)過改變后就不是原來的對象
不可更改: 數(shù)值、字符串捂襟、元組
可更改: 列表咬腕、字典
4-3
直接存儲: 數(shù)值
順序:字符串、列表笆豁、元組
映射:字典
映射的訪問下標(biāo)可以是任意的類型郎汪,而順序訪問的類型下標(biāo)只能是數(shù)值索引
4-4
type()函數(shù)查看Python對象的類型赤赊,返回的對象是 type類型對象
4-5
查閱資料
盡管str(),repr()和``運(yùn)算在特性和功能方面都非常相似闯狱,
事實(shí)上repr()和``做的是完全一樣的事情,它們返回的是一個對象的“官方”字符串表示抛计,也就是說絕大多數(shù)情況下可以通過求值運(yùn)算(使用內(nèi)建函數(shù)eval())重新得到該對象哄孤。
但str()則有所不同,str()致力于生成一個對象的可讀性好的字符串表示吹截,它的返回結(jié)果通常無法用于eval()求值瘦陈,但很適合用于print語句輸出。
需要再次提醒的是波俄,并不是所有repr()返回的字符串都能夠用 eval()內(nèi)建函數(shù)得到原來的對象晨逝。 也就是說 repr() 輸出對 Python比較友好,而str()的輸出對用戶比較友好懦铺。
雖然如此捉貌,很多情況下這三者的輸出仍然都是完全一樣的。
4-6
== 與 is 的區(qū)別就像是 Java中 equals()方法與 == 的區(qū)別冬念,一個是判斷值趁窃,一個是判斷 內(nèi)存地址(即是否是同一對象)
但是!我在題目中看不出有什么區(qū)別急前,都用type() 函數(shù)得到是類型對象醒陆,這個跟 判斷又沒關(guān)系
比如說,
>>> a = '1'
>>> b = '2'
>>> type(a) == type(b)
True
>>> type(a) is type(b)
True
isinstance() 函數(shù) 與 type( )函數(shù)的區(qū)別
一個明顯的區(qū)別是在判斷子類裆针。
type()不會認(rèn)為子類是一種父類類型刨摩。
isinstance()會認(rèn)為子類是一種父類類型寺晌。
class Foo(object):
pass
class Bar(Foo):
pass
print type(Foo()) == Foo
print type(Bar()) == Foo
print isinstance(Bar(),Foo)
輸出:
True
False
True
4-7
>>> import types
>>> dir(types)
['BooleanType', 'BufferType', 'BuiltinFunctionType', 'BuiltinMethodType', 'ClassType', 'CodeType', 'ComplexType', 'DictProxyType', 'DictType', 'DictionaryType', 'EllipsisType', 'FileType', 'FloatType', 'FrameType', 'FunctionType', 'GeneratorType', 'GetSetDescriptorType', 'InstanceType', 'IntType', 'LambdaType', 'ListType', 'LongType', 'MemberDescriptorType', 'MethodType', 'ModuleType', 'NoneType', 'NotImplementedType', 'ObjectType', 'SliceType', 'StringType', 'StringTypes', 'TracebackType', 'TupleType', 'TypeType', 'UnboundMethodType', 'UnicodeType', 'XRangeType', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__']
>>>
4-8
列表與元組
相同:訪問模式相同 都是順序訪問,存儲模式都容器類型
不同:更新模式不同澡刹,列表是可更新的折剃,元組是不可更新的
4-9
交互環(huán)境中
>>> a = 10
>>> b =10
>>> c = 100
>>> d = 100
>>> e = 10.0
>>> f = 10.0
>>> id(e)
41743560
>>> id(f)
41743544
>>> a is b
True
>>> c is d
True
>>> e is f
False
>>> x = 10.0;y = 10.0
>>> x is y
True
編輯器中
__author__ = 'Yuriy'
a = 10
b = 10
c = 100
d = 100
e = 10.0
f = 10.0
print a is b
print c is d
print e is f
True
True
True
原因暫時不知。只有引用 該博客中的解釋像屋,http://www.cnblogs.com/CaiBaoZi/archive/2013/06/13/3134261.html