python核心编程第四章习题

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

身份、类型、值

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

对象的值是否可以更改被称为对象的可改变性

列表、字典属于可变类型

数字、字符串、元组处于不可变类型。

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

字符串、元组、列表是序列类型

映射类型类似序列的索引属性,不过它的索引并不使用顺序的数字偏移量取值, 它的元素
无序存放, 通过一个唯一的 key 来访问

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

type() 接受一个对象做为参数,并返回它的类型。它的返回值是一个类型对象

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

 repr() 输出对 Python 比较友好, 而 str()的输出对人比较友好  

 repr() 和 `` 做的是完全一样的事情,绝大多数情况下可以通过求值运算(使用 eval()内建函数)重新得到该对象

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

type(a) == type(b)是对象值的比较,type(a) is type(b)是对象身份的比较, is 是找地址 找地址更快、高效

isinstance()用于判断一个对象是否是另外一个给定类的实例。

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

不同点:列表可修改,元组不可修改;相同点:都是序列类型,元素按从 0 开始的索引顺序访问

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???

原文地址:https://www.cnblogs.com/sunyucui/p/6783669.html