4-1.Python对象。与所有Python对象有关的三个属性是什么?请简单的描述一下。
答:与所有Python对象有关的三个属性是身份、类型、值。
身份:每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到。这个值可以被认为是该对象的内存地址。
类型:对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么规则。可以用内建函数type()来查看Python的类型。
值:对象表示的数据项。
4-2.类型。不可更改(immutable)指的是什么?Python的哪些类型是可更改(mutable)的,哪些不是?
答:如果对象支持更新操作,那么它的值就可以改变,否则它的值也是只读的。对象的值是否可以更改被称为对象的可改变性。如果对象的值不可更改,那么称它不可更改。
4-3.类型。哪些Python类型是按照顺序访问的,他们和映射类型的不同是什么?
答:list,string和tuple类型是按照顺序访问的。
4-4.type()。内建函数type()作用是什么?type()返回的对象是什么?
答:type()的作用是返回一个对象的类型,而不局限于标准类型。
4-5.str()和repr()。内建函数str()与repr()之间的不同是什么?哪一个等价于反引号(``)操作符?
答:内建函数str()得到的字符串可读性好。而repr()函数得到的字符串通常可以用来重新获得该对象。repr()函数和``它们返回的是一个对象的“官方”字符串表示。print语句调用的是repr()函数.
4-6.对象相等。你认为type(a)
== type(b)和type(a) is
type(b)之间的不同是什么?为什么会选者后者?函数isinstance()与这有什么关系?
答:“==”比较的是值,is比较的是对象。isinstance()用来判断一个对象是否属于这个类。
4-7.内建函数dir()。在第2章的几个练习中,我们用内建函数dir()做了几个实验,它接受一个对象,然后给出相应的属性。请对types模块做相同的实验。记下你熟悉的类型,包括你对这些类型的认识,然后记下你还不熟悉的类型。在学习Pythopn的过程中,你要逐步将“不熟悉”的类型变得“熟悉”起来。
答:
>>>
import types
>>> dir(types)
[‘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.列表和元组。列表和元组的相同点是什么?不同点是什么?
答:1
列表是可变的,而元组不是不可变的。
2 列表和元组都是按顺序访问的。
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=10
>>>
b=10
>>> c=100
>>> d=100
>>>
e=10.0
>>> f=10.0
>>> a is b
True
>>> c
is d
True
>>> e is f
False
>>>