4-1 Python 对象。与所有 Python 对象有关的三个属性是什么?请简单的描述一下。
身份:对象的唯一标识
类型 :对象的类型决定了该对象可以保存什么类型的值
值:对象表示的数据项
4-2 类型。不可更改(immutable)指的是什么?Python 的哪些类型是可更改的(mutable),哪些不是?
不可更改(immutable)指的是不允许对象的值被更改。
可变类型:列表、字典。
不可变类型:数字、字符串、元组。
可从id()判断是否可更改
4-3 类型。哪些 Python 类型是按照顺序访问的,它们和映射类型的不同是什么?
字符串、列表和元祖都是通过顺序访问。
序列类型是指容器内的元素按从0开始的索引顺序访问。一次可以访问一个元素或多个元素。虽然字符串是简单文字类型,但因为它有能力按照顺序访问子字符串,所以也将它归到序列类型。
映射类型类似序列的索引属性,不过它的索引并不使用顺序的数字偏移量取值,它的元素无序存放,通过唯一的键来访问,也就是映射类型。它容纳的是哈希键-值对集合。
4-4 type()。内建函数 type()做什么?type()返回的对象是什么?
type()检测对象的类型的函数,type()返回的对象时对象的类型.
4-5 str() 和 repr()。内建函数 str()与 repr()之间的不同是什么?哪一个等价于反引号(``)运算符?。
str()致力于生成一个对象的可读性好的字符串表示,它的返回结果通常无法用于eval()求值。repr()和(‘‘)做的是完全一样的事情,它们返回的是一个对象的“官方”字符串表示,也就是说绝大多数情况下可以通过求值运算(使用内建函数eval())重新得到该对象。
简而言之,str()输出的字符串对用户比较友好,repr()输出的字符串对python比较友好。
4–6 对象相等。您认为 type(a) == type(b)和 type(a) is type(b)之间的不同是什么?为什么会选择后者?函数 isinstance()与这有什么关系?
type(a)==type(b)比较的是对象的数值而不是对象本身,type(a) is type(b)通过对象类型属性对比,isinstance()也是通过对象类型属性对比
4-7 内建函数 dir()。在第二章的几个练习中,我们用内建函数 dir()做了几个实验,它接受一个对象,然后给出相应的属性。请对 types 模块做相同的实验。记下您熟悉的类型,包括您对这些类型的认识,然后记下你还不熟悉的类型。在学习 Python 的过程中,你要逐步将
“不熟悉”的类型变得“熟悉”起来。
4-8 列表和元组。列表和元组的相同点是什么?不同点是什么?
列表和元组相同点都是顺序访问,不同点是列表可以更改,元组不可更改。
4-9 练习,给定以下赋值:
a = 10
b = 10
c = 100
d = 100
e = 10.0
f = 10.0
请问下面各表达式的输出是什么?为什么?
在python中,整型和字符串对象时不可变对象,Python会很高效地缓存他们,会造成我们认为Python应该创建新对象时,它却没有创建新对象的假象。所以,在前两个整型做比较时返回为true,浮点型做比较时返回为false