python核心编程-第四章-习题

本文深入探讨Python中的对象特性,包括身份、类型与值的概念,解释不可更改对象与可更改对象的区别,并介绍了序列类型与映射类型的特点。同时,还对比了type()与isinstance()函数的使用场景,以及str()与repr()函数的输出差异。

1.身份、类型、值。其中,身份是每个对象的标识,与内存地址密切相关,可用id()返回;类型决定了对象可以保存什么类型的值,用type()函数、isinstance()函数可以得到对象的类型;值就是对象表示的数据

2.不可更改指对象创建以后值不可以更新。python中,列表、字典是可更改的,数字、字符串、元组是不可更改的

3.类型

字符串、列表、元组是按照顺序访问的,也就是具有切片的特性。

映射类型(字典)类似序列的索引,但它的索引不是按顺序的数字来切片,而是通过一个唯一的键或者说关键字来访问,容纳的是哈希键-值对的集合。

4.type()返回给定参数的类型。返回的实际是一个输出了字符串的类型对象

5.很多情况下二者的返回时一样的。不同点在于,str()返回的对象对用户友好,更适合print。repr()返回的对象对系统友好,返回的是一个字符串的“官方”显示,大部分情况下可以用eval()重新取得原对象。

repr()基本等价于反引号``

6. type(a) == type(b)

调用两次type()函数然后比较二者

type(a) is type(b)

用对象身份的比较代替对象值得比较,提高python的效率

7.略

8.相同点都是数组,都是容器类型,都是按顺序读取、访问,具有切片操作。

不同点在于列表的值是可以更新、可变的,元组是不可更新、不可改变的

9.

>>> 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

python会对一定范围内的简单整型进行缓存,在对c和d赋值时python并没有创建新对象,所以比较a、b对象或者c、d对象的身份,结果是相同的。

python 2.7中,缓存的范围是(-5,256)

 

转载于:https://www.cnblogs.com/hnyczhj/p/4779855.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值