《Python核心编程》读书笔记


第一章、Python对象

1.1、Python对象

Python使用对象模型来存储数据。
所有的Python对象都有三个特性:身份、类型和值。
身份可以使用内建函数id()得到;类型可以使用内建函数type()查看。

1.2、标准类型

  • 数字
  • 整形 Integer
  • 布尔型 Boolean
  • 长整形 Long integer
  • 浮点型 Floating point real number
  • 复数型 Complex number
  • 字符串 String
  • 列表 List
  • 元组 Tuple
  • 字典 Dictionary

1.3、其他内建类型

  • 类型
  • Null 对象
  • 文件
  • 集合/固定集合
  • 函数/方法
  • 模块
1.3.1 类型对象和type类型对象

例如

>>> type(21)
<type 'int'>
1.3.2 None Python的None对象

None不支持任何运算也没有任何内建方法。

所有标准对象均可用于布尔测试,同类型的对象可以比较大小。每个对象天生具有布尔值。
下列对象的布尔值是False。
* None
* False(布尔类型)
* 所有值为0的数
* 空字符串””
* 空列表 []
* 空元组 ()
* 空字典 {}

1.4、内部类型

  • 代码
  • 跟踪记录
  • 切片
  • 省略
  • Xrange
注:异常是用类来实现的
1.4.1、代码对象

代码对象是编译过的python源代码片段,是可执行对象。
通过调用compile()可以得到代码对象。
代码对象可以被exec命令或eval()内建函数来执行。

1.4.2 帧对象

帧对象表示python的执行栈帧。
帧对象包含python解释器在运行时所需要知道的所有信息。它的属性包括指向上一帧的链接,正在被执行的代码,本地及全局名称空间字典及当前指令等。
每次函数调用产生一个新的帧,每一个帧对象都会相应创建一个C栈帧。
用到帧对象的一个地方是跟踪记录对象。

1.4.3 跟踪记录对象

代码出错时,python会引发一个异常。
如果异常未被捕获和处理,解释器会退出脚本运行,显示诊断信息。

Traceback (innermost last):
    File "<stdin>", Line N? in ???
ErrorName: error reason

异常发生时,一个包含针对异常的栈跟踪信息的跟踪记录对象被创建。
如果有异常处理程序,处理程序就可以访问这个跟踪记录。

1.4.4、切片对象

切片语法:
* seqnence[start1:end1, start2:end2]
* sequence[…, start1:end1]
* slice() 内建函数
* sequence[start:end:步进值] 步进切片

>>> foostr = 'abcde'
>>> foostr[::-1]
'edcba'
>>> foostr[::-2]
'eca'
>>> foolist = [123, 'xba', 342.23, 'abc']
>>> foolist[::-1]
['abc', 342.23, 'xba', 123]
1.4.5 省略对象

省略对象用于扩展切片中,起记号作用。
这个对象在切片语法中表示省略号。类似于Null对None,省略对象有一个唯一的名字Ellipsis,它的布尔值始终为True。

>>> print(...)
Ellipsis
1.4.6、XRange对象

内建函数xrange()会产生一个Xrange对象。
时range()函数的兄弟版本。

1.5、标准类型操作符

5.1、对象值的比较

所有的内建类型均支持比较运算。

1.5.2、对象身份比较

python提供了is和is not操作符来测试两个变量是否指向同一个对象。

a is b
id(a) == id(b) #两个表达式的意义相同
注:整形对象和字符串对象是不可变对象,所以python会缓存它们。
>>> a = 1
>>> id(a)
1234567
>>> b = 1
>>> id(b)
1234567
>>>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值