Python核心编程第二版第四章Python对象(课后习题)----我的答案

4-1.Python对象。与所有Python对象有关的三个属性是什么?请简单的描述一下。

身份id():每一个对象都有一个唯一的身份标识自己,所有对象的身份都可以使用内建函数id()显示。

类型type():对象的类型决定了对象可以存储什么类型的值,可以进行什么操作,遵循什么样的规则。可以使用内建函数type()

来查看对象的类型。

值:对象所表示的数据项。

4-2.类型。不可更改(immutable)指的是什么?Python的哪些类型是可更改的(mutable),哪些不是?

不可更改指的是对象创建后的值无法更新。

immutable:整型,字符串,元组

mutable:列表,字典

4-3.类型。哪些Python类型是按照顺序访问的,它们和映射类型的不同是什么?

顺序访问:列表,元组,字符串

映射类型:字典

顺序和映射的区别:顺序访问是指容器内的值从0开始索引访问,映射类型的访问通过唯一的键来找到相应的值,Python语言唯一的映射类型就是字典,字典内元素是无序排放的,它容纳的是哈希键-值对的集合。

4-4.type()。内建函数type()做什么?type()返回的对象是什么?

通过调用type()函数能够得到特定对象的类型信息。

4-5.str()和repr()。内建函数str()与repr()之间的不同是什么?哪一个等价于反引号('')操作符?

repr()是将字符串转换为合法的表达式来显示,而str()则是将字符串转换为更容易让用户理解的形式。也就是说repr()输出对python比较友好,而str()的输出对用户比较友好。

repr()与‘’等价:返回一个对象的字符串表示。

4-6.对象相等。你认为type(a) == type(b)和type(a) is type(b)之间的不同是什么?为什么会选择后者?函数isinstance()与这有什么关系?

type(a)==type(b)是一种对象值的bool比较,通过type()函数求得变量类型;type(a) is type(b)是一种对象类型比较。在进行多次比较时后者效率更高。

isinstance()内建函数用来判断两个类型是否相同等价于type(a) is type(b),但更推荐使用isinstance()函数。

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.列表和元组。列表和元组的相同点是什么?不同点是什么?

相同点:列表和元组都可以当成普通的“数组”,他能保存任意数量任意类型的python对象。和数组一样,通过从0开始的数字索引访问元素,但是列表和元组都可以储存不同类型的对象。

不同点:列表元素用中括号包裹,元素的个数及元素的值可以改变。元组元素用小括号包裹,不可以更改。元组可以看成是只读的列表。

4-9.
>>> 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
python中仅缓存简单的整型,(-1,100)。这个a=10,b=10,指向相同的整型对象,但是a=10.0和b=10.0时,并没有指向相同的浮点型对象。
>>> id(a)
84566096L
>>> id(b)
84566096L
>>> id(e)
84627096L
>>> id(f)
84627072L


你可能感兴趣的:(python)