Python核心编程(第二版)-第四章答案

4-1.Python对象。与所有Python对象有关的三个属性是什么?请简单的描述一下。

答:与所有Python对象有关的三个属性是身份,类型,值
身份:每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到。这个值可以被认为是该对象的内存地址。
类型:对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么规则。可以用内建函数type()来查看Python的类型。
值:对象表示的数据项。

4-2.类型。不可更改(immutable)指的是什么?Python的哪些类型是可更改(mutable)的,哪些不是?

答:如果对象支持更新操作,那么它的值就可以改变,否则它的值是只读的。对象的值是否可以更改被称为对象的可改变性。如果对象的值不可更改,那么称它不可更改。这里的是否更改指的是执行更新操作不会产生新的对象(对象的身份不变即id()值(地址)不变),类型不可更改指的是改变数据项时不会产生新的对象,python中list,dict是可更改类型,字符串,tuple,数值是不可更改的。

4-3.类型。哪些Python类型是按照顺序访问的,他们和映射类型的不同是什么?

答:list,string和tuple类型是按照顺序访问的,dict是按映射访问的。

4-4.type()。内建函数type()作用是什么?type()返回的对象是什么?

答:type()的作用是给出能判断一个对象的类型,其本身返回的也是一个对象。

4-5.str()和repr()。内建函数str()与repr()之间的不同是什么?哪一个等价于反引号(``)操作符?

答:str()和repr()都是将对象字符串化后更友好输出,但是str()是针对用户的更为友好的输出,而repr是针对‘官方’的友好输出,其输出可以使用eval()函数重新创建出对象(eval(repr(obj))),其等价于反引号“``”,但是“``”慢慢的将被丢弃.print语句调用的是repr()函数,大部分情况str()和repr()输出是一样的。

4-6.对象相等。你认为type(a) == type(b)和type(a) is type(b)之间的不同是什么?为什么会选者后者?函数isinstance()与这有什么关系?

答:“==”比较的是值,is比较的是对象。isinstance()用来判断一个对象是否属于这个类。

4-7.内建函数dir()。在第2章的几个练习中,我们用内建函数dir()做了几个实验,它接受一个对象,然后给出相应的属性。请对types模块做相同的实验。记下你熟悉的类型,包括你对这些类型的认识,然后记下你还不熟悉的类型。在学习Pythopn的过程中,你要逐步将“不熟悉”的类型变得“熟悉”起来。
'python 对象研究'
#模块也是对象
import types
print dir(types)
-------
C:\Users\17759>python C:\Users\17759\Desktop\10000\test.py
['BooleanType', 'BufferType', 'BuiltinFunctionType', 'BuiltinMethodType', 'Class
Type', 'CodeType', 'ComplexType', 'DictProxyType', 'DictType', 'DictionaryType',
 'EllipsisType', 'FileType', 'FloatType', 'FrameType', 'FunctionType', 'Generato
rType', 'GetSetDescriptorType', 'InstanceType', 'IntType', 'LambdaType', 'ListTy
pe', 'LongType', 'MemberDescriptorType', 'MethodType', 'ModuleType', 'NoneType',
 'NotImplementedType', 'ObjectType', 'SliceType', 'StringType', 'StringTypes', '
TracebackType', 'TupleType', 'TypeType', 'UnboundMethodType', 'UnicodeType', 'XR
angeType', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__pack
age__']
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) True
(b)False
(c)False
>>> a is b
True
>>> c is d
True
>>> e is f
False

[参考文章]https://www.cnblogs.com/tmyyss/p/3756122.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值