Python核心编程课后习题-第四章

4-1

  1. ID值 内存的地址值,可以有id( ) 函数查看
  2. 类型 每种Python对象都有一种类型,可由 type( )函数查看
  3. 值 对象的数据项

4-2

不可更改指的是Python某个对象的值经过改变后就不是原来的对象

不可更改: 数值、字符串、元组
可更改: 列表、字典

4-3

直接存储: 数值
顺序:字符串、列表、元组
映射:字典
映射的访问下标可以是任意的类型,而顺序访问的类型下标只能是数值索引

4-4

type()函数查看Python对象的类型,返回的对象是 type类型对象

4-5

查阅资料

尽管str(),repr()和``运算在特性和功能方面都非常相似,
事实上repr()和``做的是完全一样的事情,它们返回的是一个对象的“官方”字符串表示,也就是说绝大多数情况下可以通过求值运算(使用内建函数eval())重新得到该对象。
但str()则有所不同,str()致力于生成一个对象的可读性好的字符串表示,它的返回结果通常无法用于eval()求值,但很适合用于print语句输出。
需要再次提醒的是,并不是所有repr()返回的字符串都能够用 eval()内建函数得到原来的对象。 也就是说 repr() 输出对 Python比较友好,而str()的输出对用户比较友好。
虽然如此,很多情况下这三者的输出仍然都是完全一样的。

4-6

== 与 is 的区别就像是 Java中 equals()方法与 == 的区别,一个是判断值,一个是判断 内存地址(即是否是同一对象)

但是!我在题目中看不出有什么区别,都用type() 函数得到是类型对象,这个跟 判断又没关系

比如说,

>>> a = '1'
>>> b = '2'
>>> type(a) == type(b)
True
>>> type(a) is type(b)
True

isinstance() 函数 与 type( )函数的区别
一个明显的区别是在判断子类。
type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。

class Foo(object):
    pass

class Bar(Foo):
    pass

print type(Foo()) == Foo
print type(Bar()) == Foo
print isinstance(Bar(),Foo)

输出:
True
False
True

4-7

>>> 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', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__']
>>>

4-8

列表与元组
相同:访问模式相同 都是顺序访问,存储模式都容器类型
不同:更新模式不同,列表是可更新的,元组是不可更新的

4-9

交互环境中

>>> a = 10
>>> b =10
>>> c = 100
>>> d = 100
>>> e = 10.0
>>> f = 10.0
>>> id(e)
41743560
>>> id(f)
41743544
>>> a is b
True
>>> c is d
True
>>> e is f
False
>>> x = 10.0;y = 10.0
>>> x is y
True

编辑器中

__author__ = 'Yuriy'
a = 10
b = 10
c = 100
d = 100
e = 10.0
f = 10.0
print a is b
print c is d
print e is f
True
True
True

原因暂时不知。只有引用 该博客中的解释,http://www.cnblogs.com/CaiBaoZi/archive/2013/06/13/3134261.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 内置函数Python解释器内置了许多功能和类型,总是可用的。他们是按字母顺序列在这里。 abs(x)返回一个数的绝...
    uangianlap阅读 5,034评论 0 0
  • 4–1. Python 对象。与所有 Python 对象有关的三个属性是什么?请简单的描述一下。 身份:唯一身份标...
    工口Code阅读 3,452评论 0 0
  • 1. abs(x) abs()函数返回数字(可为普通型、长整型或浮点型)的绝对值。如果给出复数,返回值就是该复数的...
    TENG书阅读 3,173评论 0 0
  • 1. abs(x) abs()函数返回数字(可为普通型、长整型或浮点型)的绝对值。如果给出复数,返回值就是该复数的...
    chen_000阅读 3,081评论 0 0
  • isinstance(n,(a,b,…))n为需要判断的变量名, a、b...为需要判断的类型,当n为其中一个时返...
    JEZAU阅读 2,286评论 0 1

友情链接更多精彩内容