美文网首页
Python核心编程课后习题-第四章

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

作者: 无愠无殇 | 来源:发表于2016-03-08 02:15 被阅读55次

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

相关文章

网友评论

      本文标题:Python核心编程课后习题-第四章

      本文链接:https://www.haomeiwen.com/subject/uwqzkttx.html