Python 3程序开发指南(第2版 修订版)笔记

Python 3程序开发指南(第2版 修订版)

目录

过程型程序设计快速入门

  1. for in
  2. try except as

数据类型

  1. sys.float_info.epsilon
  2. seq[start:end]实际上代表[start, end)区间,s[:]相当于s[0:len(s)]
    1. 不一致:当使用负数step时,start默认为-1:s[::-2]
  3. strTemplate.format(agr0, arg2, name1=value1,...)
    1. {0} {1} {2} ...
    2. {name1} {name2} ... //混用时编号参数在前面,命名参数放到后面
    3. 使用当前作用域范围内的局部变量? **locals() //locals()返回一个字典,**将其拆分

组合类型

  1. 序列:bytearray、bytes、list、str、tuple
    1. collections.namedtuple
    2. 列表拆分:first, *rest = [1,2,3,4]
    3. 列表理解:[expr for i in L]
  2. 集合:set
    1. 集合理解:{expr for i in s}
  3. 映射:3.0 dict、collections.defaultdict,3.1 collections.OrderedDict
    1. setdefault:防止d[k]+=1这样的语法第一次调用时抛出KeyError

控制结构与函数

模块

OOP

文件处理

  1. bytes.fromhex ?
  2. f.seekable()

高级程序设计技术

  1. 生成器:实现者使用yield惰性返回,调用者for in获取之
    1. 重置当前值:generator.send(val), val作为yield表达式的结果接受
  2. 动态导入模块:最原始的方法
    1. code = open(filepath, "r", encoding="utf8").read()
    2. module = type(sys)(name)
    3. sys.modules[name] = module
    4. exec(code, module.__dict__)
  3. 装饰器:高阶函数,original_func --> wrapped_func(这里一个主要的理解障碍在于*args, **kwargs参数的语法)
    1. 函数注释:__annotations__
  4. Functor:__call__
  5. 上下文管理器:with expr as var: suite
    1. expr返回的结果必须实现__enter__ __exit__,如open()返回的文件对象
  6. 描述符*:__get__ __set__ __delete__
    1. __slots__ = ()
  7. 类修饰器:class --> class'
    1. nonlocal
  8. ABC(抽象基类)
  9. 元类(?)

FP

  1. functools.partial
  2. @coroutine:为协程调用内置的next(),使其执行到第一个yield处并等待
    1. 构成流水线*

调试、测试与Profiling

  1. p366 Python 3的优点之一是区分str与bytes?
  2. Python 3.0异常链的支持:raise NewException(...) from err

进程与线程

网络

数据库

正则表达式

  1. 负前瞻:(?!e)
  2. m.span(g):返回组g在文本中匹配的起始接受索引位置(start,end)

分析简介

PyParsing

  1. 要素:Literal()、Supress()、Keyword()(必须全词匹配)
    1. Word("abc")匹配abacus?
    2. CharsNotIn() SkipTo() Regex()
    3. Forward() 空的要素?
  2. 量化:Optional()、ZeroOrMore()、OneOrMore()、Group()、Combine()
  3. 处理BNF的惯用法:
    1. 不要写成item | Empty(),而是Optional(item)
    2. 变量列表:var_list = variable + ZeroOrMore(Supress(",")+variable)
  4. 设置动作:.setParseAction(lambda tokens: ...)
  5. 分析一阶逻辑*:
    1. 例:(forall x: exists y: true) -> true & ~true -> true
    2. ParseElement.enablePackrat()

PLY

  1. t_TOKENNAME p_bnf_rule ...

GUI

2011年2月出的,绝对最新哦,扫描绝对超级清楚。 在本书中,一流的Python程序员Mark Summerfield展示了如何充分利用Python 3的功能与特性来编写代码。与以前的本相比。Python 3功能更强大,使用更方便,语法更一致,表达能力更丰富。本书将编写程序、使用标准或第三方Python 3库、创建新的专用库模块所必需的所有相关知识整合到了一起。 Python是一种脚本语言,在各个领域得到了日益广泛的应用。本书全面深入地对Python语言进行了讲解。 本书首先讲述了构成Python语言的8个关键要素,之后分章节对其进行了详尽的阐述,包括数据类型、控制结构与函数、模块、文件处理、调试、进程与线程、网络、数据库、正则表达式、GUI程序设计等各个方面,并介绍了其他一些相关主题。全书内容以实例讲解为主线,每章后面附有练习题,便于读者更好地理解和掌握所讲述的内容。 作为一名具有多年Python使用经验的程序员,Summerfield在本书中为读者深度分析与讲解了从其他途径无法获取的Python3使用与开发技术。Summerfield从Python的“优美核心(beautiful heart)”(即编写高健壮性、高性能程序的8个关键要素)开始进行讲解,并以这些关键要素为基础,介绍了有助于增强程序开发实用技能的新主题,每个主题都包含其概念和多个操作实例。 本书既可以作为Python编程指南,也可以作为Python语言参考手册。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值