Python核心编程习题答案(四)

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

对象身份:id()

对象属性:int,class....

对象的值:data

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

不可更改指的是那些不可变对象

可变对象:字典,列表,集合

不可变对象:数字,字符串,元组

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

按顺序访问的类型:字符串,列表,元组

顺序访问和映射类型的区别在于映射类型的元素都是无序存放的,通过键访问

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

type()函数:检查对象的类型

type()返回对象的类型,不仅仅返回标准类型

4–4. str() 和 repr()。内建函数 str()与 repr()之间的不同是什么?哪一个等价于反 引号(``)运算符?。

str()是把对象直接转换成字符串.

repr()返回对象的规范化字符串表示形式,对于大多数对象有eval(repr()) == obj

总的来说repr返回的对象可以用于eval()求值而str()不能

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

type(a) == type(b)是对两对象的值进行比较

type(a) is type(b)是对两对象的身份进行比较

4–7. 内建函数 dir()。在第二章的几个练习中,我们用内建函数 dir()做了几个实验, 它接受一个对象,然后给出相应的属性。请对 types 模块做相同的实验。记下您熟悉的类型, 包括您对这些类型的认识,然后记下你还不熟悉的类型。在学习 Python 的过程中,你要逐步将 “不熟悉”的类型变得“熟悉”起来。

dir(type)

['__abstractmethods__', '__base__', '__bases__', '__basicsize__', '__call__', '__class__', '__delattr__', '__dict__', '_

_dictoffset__', '__dir__', '__doc__', '__eq__', '__flags__', '__format__', '__ge__', '__getattribute__', '__gt__', '__ha

sh__', '__init__', '__init_subclass__', '__instancecheck__', '__itemsize__', '__le__', '__lt__', '__module__', '__mro__'

, '__name__', '__ne__', '__new__', '__prepare__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr_

_', '__sizeof__', '__str__', '__subclasscheck__', '__subclasses__', '__subclasshook__', '__text_signature__', '__weakref

offset__', 'mro']

4–8. 列表和元组。列表和元组的相同点是什么?不同点是什么?

相同点:访问模型相同(顺序访问),存储模型相同(使用容器存储对象,可以存储不同类型的对象)

不同点:列表可变,元组不可变

4–9. 练习,给定以下赋值:

a = 10

b = 10

c = 100

d = 100

e = 10.0

f = 10.0

请问下面各表达式的输出是什么?为什么?

(a) a is b

True

(b) c is d

True

(c) e is f

False

a,b指向了同样的整型对象(10),

c,d指向了同样的整型对象(100)

e,f指向了不同的浮点对象.

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180130G0GGQL00?refer=cp_1026

扫码关注云+社区