4-1. Python对象。与所有Python对象有关的三个属性是什么?请简单的描述一下。
答:身份、类型和值:
身份:每一个对象都有一个唯一的身份标识自己,可以用id()得到。
类型:对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。可以用type()查看类型。
值:对象表示的数据项。
4-2.类型。不可更改(immutable)指的是什么?Python的那些类型是可更改的(mutable),哪些不是?
答:对象的值是否可以更改称为对象的可改变性,不可更改指的是对象的值只读,例如:元组,数字,字符串,可变的有:列表,字典。
4-3. 类型。哪些Python类型是按照顺序访问的,它们和映射类型的不同是什么?
答: 顺序访问:字符串、列表、元组。
序列类型只按从0开始的索引顺序访问,而映射类型的元素时无序存放的,是通过唯一的key来访问,key-value。
4-4. type()。内建函数type()做什么?type()返回的对象是什么?
答: 通过调用type()函数,你能够得到特定对象的类型信息。
type()返回的对象类型是type。
4-5. str()和repr()。内建函数str()与repr()之间的不同是什么?哪一个等价于反引号('')操作符?
答: repr()输出对Python比较友好,str()的输出对用户比较友好。repr()和''做的是完全一样的事情。
4-6. 对象相等。你认为type(a) == type(b)和type(a) is type(b)之间的不同是什么?为什么会选择后者?函数isinstance()与这有什么关系?
答: type(a) is type(b),表示type(a)和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
请问下面各表达式的输出是什么?为什么?