4-1 Python对象。与所有Python对象有关的三个属性是什么?请简单地描述一下。
身份 :该对象的内存地址;
类型:决定了该对象可以保存什么类型的值,可以进行什么样的操作以及遵循什么样的规则;
值:对象表示的数据项
4-2 类型。不可更改(immutable)指的是什么?Python的那些类型是可更改(mutable),哪些不是?
不可更改指不可变对象不允许他们的值被改变;
immutable:数字、字符串、元组;
mutable:列表、字典
4-3 类型。哪些Python类型是按顺序访问的,它们和映射类型的不同是什么?
字符串、列表、元组
映射类型的元素无序存放,通过一个唯一的键来访问,这就是映射类型,它容纳的是哈希键-值对的集合。
4-4 type().内建函数type()做什么?type()返回的对象是什么?
返回任意对象的类型
对象的类型
4-5 str() 和 repr().内建函数str()与repr()之间的不同是什么?哪一个等价于反引号(‘’)操作符?
str()函数得到的字符串可读性好,而repr()函数得到的字符串可以用来重新获得该对象,通常情况下obj == eval(repr(obj))这个等式是成立的。
repr()等价于('')
4-6 对象相等。 你认为type(a) == type(b)和type(a) is type(b)之间的不同是什么?为什么会选择后者?函数isinstance()与这有什么关系?
“==”比较的是值,is比较的是对象。isinstance()用来判断一个对象是否属于这个类。
4-7 内建函数dir()。在第2章的几个练习中,我们用内建函数dir()做了几个实验,它接受一个对象,然后给出相应的属性。请对type模块做相同的实验。记下你熟悉的类型,包括你对这些类型的认识,然后记下你还不熟悉的类型。在学习Python的过程中,你要逐渐将‘不熟悉’的类型变得熟悉起来。
4-8 列表和元组。列表和元组的相同点是什么?不同点是什么?
相同点:访问模型都是顺序访问,存储模型都为容器
不同点:列表为可更改类型,元组为不可更改类型
4-9 实践,给定以下赋值:
a = 10
b = 10
c = 100
d = 100
e = 10.0
f = 10.0
请问下面各表达式的输出是什么?为什么?
(a) a is b
(b)c is d
(c)e is f
(a)True a和b是同一个对象
(b)True c和d是同一个对象
(c)False e和f不是同一个对象
(c)False e和f不是同一个对象