4–1. Python 对象。与所有 Python 对象有关的三个属性是什么?请简单的描述一下。
答: 身份,类型,值
4–2. 类型。不可更改(immutable)指的是什么?Python 的哪些类型是可更改的
(mutable),哪些不是?
答:不可更改是指对象属性的值不能改变,
不可改变的有的:tuple,字符串,数字
4–3. 类型。哪些 Python 类型是按照顺序访问的,它们和映射类型的不同是什么?
答: 顺序访问的有:字符串,元组,列表。
与映射不同的时,映射需要索引来访问,它的索引并不使用顺序的数字偏移量取值, 它的元素
无序存放,通过一个唯一的 key 来访问
4–4. type()。内建函数 type()做什么?type()返回的对象是什么?
答:type() 函数是取得对象类型的函数。type()返回的对象是对象的类型
4–4. str() 和 repr()。内建函数 str()与 repr()之间的不同是什么?哪一个等价于反
引号(``)运算符?。
答:str() 和repr() 不同之处在于,str()在输出时创建了一个新的对象,从而对人来说,可读性更好,但repr()不同,得到字符串可以用来重新获得该对象,并且能应用eval()函数。
4–6. 对象相等。您认为 type(a) == type(b)和 type(a) is type(b)之间的不同是什么?为什么会选择后者?函数 isinstance()与这有什么关系?
答:type(a)==type(b) 能过调用再次type函数来对比a,b的类型值是否相同, 而type(a) is type(b)是根据对象类型属性进行对比,前者是一种bool运算,后者是对象类型比较。
函数isinstance()也是通过对象类型进行判断。
4–7. 内建函数 dir()。在第二章的几个练习中,我们用内建函数 dir()做了几个实验,
它接受一个对象,然后给出相应的属性。请对 types 模块做相同的实验。记下您熟悉的类型,
包括您对这些类型的认识,然后记下你还不熟悉的类型。在学习 Python 的过程中,你要逐步将
“不熟悉”的类型变得“熟悉”起来。
答:python v2.7.6
['BooleanType', 'BufferType', 'BuiltinFunctionType', 'BuiltinMethodType', 'ClassType', 'CodeType', 'ComplexType', 'DictProxyType', 'DictType', 'DictionaryType', 'EllipsisType', 'FileType', 'FloatType', 'FrameType', 'FunctionType', 'GeneratorType', 'GetSetDescriptorType', 'InstanceType', 'IntType', 'LambdaType', 'ListType', 'LongType', 'MemberDescriptorType', 'MethodType', 'ModuleType', 'NoneType', 'NotImplementedType', 'ObjectType', 'SliceType', 'StringType', 'StringTypes', 'TracebackType', 'TupleType', 'TypeType', 'UnboundMethodType', 'UnicodeType', 'XRangeType', '__builtins__', '__doc__', '__file__', '__name__', '__package__']
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) a is b true
(b) c is d true
(c) e is f false
答: 身份,类型,值
4–2. 类型。不可更改(immutable)指的是什么?Python 的哪些类型是可更改的
(mutable),哪些不是?
答:不可更改是指对象属性的值不能改变,
不可改变的有的:tuple,字符串,数字
4–3. 类型。哪些 Python 类型是按照顺序访问的,它们和映射类型的不同是什么?
答: 顺序访问的有:字符串,元组,列表。
与映射不同的时,映射需要索引来访问,它的索引并不使用顺序的数字偏移量取值, 它的元素
无序存放,通过一个唯一的 key 来访问
4–4. type()。内建函数 type()做什么?type()返回的对象是什么?
答:type() 函数是取得对象类型的函数。type()返回的对象是对象的类型
4–4. str() 和 repr()。内建函数 str()与 repr()之间的不同是什么?哪一个等价于反
引号(``)运算符?。
答:str() 和repr() 不同之处在于,str()在输出时创建了一个新的对象,从而对人来说,可读性更好,但repr()不同,得到字符串可以用来重新获得该对象,并且能应用eval()函数。
4–6. 对象相等。您认为 type(a) == type(b)和 type(a) is type(b)之间的不同是什么?为什么会选择后者?函数 isinstance()与这有什么关系?
答:type(a)==type(b) 能过调用再次type函数来对比a,b的类型值是否相同, 而type(a) is type(b)是根据对象类型属性进行对比,前者是一种bool运算,后者是对象类型比较。
函数isinstance()也是通过对象类型进行判断。
4–7. 内建函数 dir()。在第二章的几个练习中,我们用内建函数 dir()做了几个实验,
它接受一个对象,然后给出相应的属性。请对 types 模块做相同的实验。记下您熟悉的类型,
包括您对这些类型的认识,然后记下你还不熟悉的类型。在学习 Python 的过程中,你要逐步将
“不熟悉”的类型变得“熟悉”起来。
答:python v2.7.6
['BooleanType', 'BufferType', 'BuiltinFunctionType', 'BuiltinMethodType', 'ClassType', 'CodeType', 'ComplexType', 'DictProxyType', 'DictType', 'DictionaryType', 'EllipsisType', 'FileType', 'FloatType', 'FrameType', 'FunctionType', 'GeneratorType', 'GetSetDescriptorType', 'InstanceType', 'IntType', 'LambdaType', 'ListType', 'LongType', 'MemberDescriptorType', 'MethodType', 'ModuleType', 'NoneType', 'NotImplementedType', 'ObjectType', 'SliceType', 'StringType', 'StringTypes', 'TracebackType', 'TupleType', 'TypeType', 'UnboundMethodType', 'UnicodeType', 'XRangeType', '__builtins__', '__doc__', '__file__', '__name__', '__package__']
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) a is b true
(b) c is d true
(c) e is f false