《Python核心编程》第二版课后习题——第四章(记录自己做的习题,可能有误)

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

【答】身份,类型,值。

身份可以用内建函数id()得到,我理解成得到该对象的地址,或者说是引用地址。

类型可以用内建函数type()得到。

,可以被赋值,以上两个属性都是只读的。

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

【答】immutable: 数字,string,元组

mutable:列表,字典

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

【答】字符串,列表,元组。

顺序访问依次从0开始,映射类型可以理解为带有索引的查找。

4–4. type()。内建函数type()做什么?type()返回的对象是什么?

【答】type()可以获取对象的类型,书中一再强调type也是一个类。

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

【答】repr()相当于反引号(``)运算符。str()得到的字符串可读性更好。

>>>notice = ’’’hello

... world’’’

>>>str(notice)

'hello\n world’

>>>repr(notice)

'hello\\n world’


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

【答】在python中,is是判断两个对象是否相等,其方法是通过id判断的。==是通过值判断的。在这里,type(a)type(b)返回的都是一个类型对象,则通过==is结果是一样的。

isinstance的用法是调用isinstance(object,class)来判断object的类型是否是class

4–7. 内建函数dir()。在第二章的几个练习中,我们用内建函数dir()做了几个实验,它接受一个对象,然后给出相应的属性。请对 types 模块做相同的实验。记下您熟悉的类型,包括您对这些类型的认识,然后记下你还不熟悉的类型。在学习Python 的过程中,你要逐步将不熟悉的类型变得熟悉起来。

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

【答】如果写成.py文件执行,结果都是True,如果在命令台执行:若逐行写,e is f返回False,其余都是True;如果写成a=10;b=10;c=100;d=100;e=10.0;f=10.0,返回都是True.

abcd都是int,在Python中,int范围在[-5, 256]都会指向同一内存空间,即用id()返回的都是同一值,float应该指向不同空间。但是不知道为什么写在同一行会返回true。怀疑也有一个范围,被视为常用可能编译时进行优化。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值