Python核心编程2第四章课后练习

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

身份:对象的唯一标识

类型 :对象的类型决定了该对象可以保存什么类型的值

值:对象表示的数据项

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

不可更改(immutable)指的是不允许对象的值被更改。

可变类型:列表、字典。

不可变类型:数字、字符串、元组。

可从id()判断是否可更改

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

字符串、列表和元祖都是通过顺序访问。

序列类型是指容器内的元素按从0开始的索引顺序访问。一次可以访问一个元素或多个元素。虽然字符串是简单文字类型,但因为它有能力按照顺序访问子字符串,所以也将它归到序列类型。

映射类型类似序列的索引属性,不过它的索引并不使用顺序的数字偏移量取值,它的元素无序存放,通过唯一的键来访问,也就是映射类型。它容纳的是哈希键-值对集合。

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

type()检测对象的类型的函数,type()返回的对象时对象的类型.

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

str()致力于生成一个对象的可读性好的字符串表示,它的返回结果通常无法用于eval()求值。repr()和(‘‘)做的是完全一样的事情,它们返回的是一个对象的“官方”字符串表示,也就是说绝大多数情况下可以通过求值运算(使用内建函数eval())重新得到该对象。

简而言之,str()输出的字符串对用户比较友好,repr()输出的字符串对python比较友好。

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

type(a)==type(b)比较的是对象的数值而不是对象本身,type(a) is type(b)通过对象类型属性对比,isinstance()也是通过对象类型属性对比

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


“不熟悉”的类型变得“熟悉”起来。

 

4-8 列表和元组。列表和元组的相同点是什么?不同点是什么? 

列表和元组相同点都是顺序访问,不同点是列表可以更改,元组不可更改。

4-9 练习,给定以下赋值: 


a = 10 

b = 10 
c = 100 
d = 100 
e = 10.0 
f = 10.0 
请问下面各表达式的输出是什么?为什么? 

在python中,整型和字符串对象时不可变对象,Python会很高效地缓存他们,会造成我们认为Python应该创建新对象时,它却没有创建新对象的假象。所以,在前两个整型做比较时返回为true,浮点型做比较时返回为false

时间: 2024-10-08 10:10:14

Python核心编程2第四章课后练习的相关文章

Python核心编程笔记——第四章

第四章 Python对象 1.类型也是对象: a = 4;type(a)-><type 'int'>,这里"<type 'int'>"是一个类型对象(可以赋值给一个变量),可以使用 type(type(a)) 来验证 2.Python2.2开始,类和类型统一,类=类型,实例是类型的对象 3.任何对象都天生具有布尔值 4.整数对象,字符串对象,元组对象都是不可变对象,Python会高效的缓存整数和字符串对象,所以 a=3;b=1+2;(a is b)会返回T

Python核心编程2第五章课后练习

本人自己做的练习,借鉴过网上资料,准确性不保证,欢迎各位前辈指教:-D. 5-1 整型,讲讲python普通整型与长整型区别 python整形一共有三种:布尔型,长整型和标准整型.普通整型与长整型的区别在于标准整形的取值范围是-2^31到2^31-1,长整型所能表达的数值与机器自身的内存有关. 5-2 定义一个函数,用于两个数相乘,并调用这个函数 #!/usr/bin/env python def Multiply(number1,number2): return number1*number2

Python核心编程_第五章课后习题

习题5_2.py #!/usr/bin/python def MyMultiple(x, y):         return x * y      for i in range(1, 10):      for j in range(1, i + 1):          print '%d * %d = %2d' % (j, i, MyMultiple(i, j)),                          if j == i:                     print

Python核心编程2第三章课后练习

1. 标识符.为什么Python 中不需要变量名和变量类型声明? Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程.每个变量在内存中创建,都包括变量的标识,名称和数据这些信息.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 2.标识符.为什么Python 中不需要声明函数类型? Python中使用def关键字定义函数,函数包括函数名称和参数,不需要定义返回类型,Python能返回任何类型函数没有定义返回类型,实际上每一个函数都有返回值,默认为None(pytho

Python核心编程2第六章课后练习

6-1 字符串 .string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? #!/usr/bin/env python def contain(str1,str2): if str1 in str2: print "str1 contains str2" else: print "str1 not contains str2" if __name__=="__main__": str1=raw_in

《Python核心编程》 第五章 数字 - 课后习题

课后习题  5-1 整形. 讲讲 Python 普通整型和长整型的区别. 答:普通整型是绝大多数现代系统都能识别的. Python的长整型类型能表达的数值仅仅与你机器支持的(虚拟)内存大小有关. 5-2 运算符 (a) 写一个函数,计算并返回两个数的乘积 (b) 写一段代码调用这个函数,并显示它的结果 答: def pro(a,b): p = a*b return p a = int(raw_input("a=")) b = int(raw_input("b="))

《Python核心编程》 第七章 映射和集合类型 - 习题

课后习题 7–1. 字典方法.哪个字典方法可以用来把两个字典合并到一起? 答: dict1 = {'1' :' python' } dict2 = {'2' :"hello" } dict1.update(dict2) dictAll = dict1 print dictAll Result: {'1': ' python', '2': 'hello'} 7–2. 字典的键.我们知道字典的值可以是任意的 Python 对象,那字典的键又如何呢?请试 着将除数字和字符串以外的其他不同类型

【python核心编程】第六章 序列

1.操作符 (1)成员关系操作符:in .not in >>> string ='abcdefg'>>> 'a' in stringTrue>>> 'h' in stringFalse>>> 'h' not in stringTrue *补充知识*:string模块 >>> import string>>> string.uppercase        #大写字母'ABCDEFGHIJKLMNOP

《Python核心编程》第五章:数字

本章大纲 介绍Python支持的多种数字类型,包括:整型.长整型.布尔型.双精度浮点型.十进制浮点型和复数.介绍和数字相关的运算符和函数. 知识点 5.1 布尔型 从Python2.3开始支持bool,取值范围:True.False 5.2 标准整型 在32位机器上,标准整数类型的取值范围:-2的31次方 ~ 2的31次方-1 - Python标准整数类型等价于C语言的(有符号)长整型. - 八进制整数以数字 "0" 开头,十六进制整数以 "0x" 或 "