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