Head First Python学习总结

Head First Python学习总结

初识Python

  • Python术语

    BIF——内置函数
    组(suite)——Python代码块,会通过缩进来指示分组。
    功能齐全(Batteries included)——指Python提供了快速高效地完成工作所需的大多数功能。

  • IDLE说明

    IDLE shell允许在编写代码的同时试验代码。
    调整IDLE的首选项,以适应工作方式工作。
    记住:使用shell时,Alt+P表示前一个命令,Alt+N表示下一个命令,不过如果使用Mac,则要使用Ctrl+PCtrl—+N

  • 核心要点

    从命令行或在IDLE中运行Python3。
    标识符是指示数据对象的名字。标识符没有“类型”,不过标识符所指示的数据对象有类型。
    print() BIF会在屏幕上显示一个消息。
    列表是一个数据集合,数据项之间用逗号分隔,整个列表用中括号包围。
    列表就像是”打了激素”的数组。
    可以用BIF处理列表,另外列表还支持一组列表方法。
    列表可以存放任意数据,而且数据可以是混合类型。列表还可以包含其他列表。
    列表可以随需要伸缩。数据使用的所有内存都有Python为你管理。
    Python使用缩进将语句归组在一起。
    len() BIF会提供某个数据对象的长度,或者统计一个集合中的项数,如列表中的项数。
    for循环允许迭代处理一个列表,这通常比使用一个等价的while循环更方便。
    可以利用if…else…语句在代码中完成判断。
    isinstance() BIF会检查一个标识符是否指示某个指定类型的数据对象。
    使用def来定义一个定制函数。

共享你的代码

  • Python术语

    使用“三重引号字符串”可以在代码中加入一个多行注释。
    PyPI就是Python包索引(Python Package Index),这个网站很值得访问。
    Python内存中的名字就是存放在“命名空间”中。
    Python的主命名空间名为_main_

  • IDLE说明

    在IDLE编辑窗口中按F5可以运行代码。
    按F5将模块的代码加载到IDLE shell,模块名会专门导入到IDLE的命名空间。使用IDLE时很便利。在代码中,需要显式使用import语句。

  • 核心要点

    模块是一个包含Python代码的文本文件。
    发布工具允许将模块转换为可共享的包
    setup.py程序提供了模板的元数据,用来构建、安装和上传打包的发布。
    使用import语句可以将模块导入到其他程序中。
    Python中的各个模块提供了自己的命名空间,使用module.function()形式调用模块的函数时,要用命名空间名限制函数。
    使用import语句的from module import function形式可以从一个模块将函数专门导入到当前命名空间。
    使用#可以注释掉一行代码,或者为程序增加一个简短的单行注释。
    内置函数(built-in-function,BIF)有自己的命名空间,名为_builtins_,这会自动包含在每一个Python程序中。
    ranage() BIF可以与for结合使用,从而迭代固定次数。
    包含end=”作为print() BIF的一个参数会关闭其默认行为(即在输入中自动包含换行)。
    如果为函数参数提供一个缺省值,这个函数就是可选的。

文件与异常

  • Python术语

    异常(exception)因运行时错误而出现,会产生一个traceback。
    traceback是出现的运行时错误的一个详细描述。

  • IDLE说明

    可以从IDLE的Help菜单选择Python Docs来访问Python的文档。这会在你喜欢的Web浏览器中打开Python3文档。

  • 核心要点

    使用open() BIF打开一个磁盘文件,创建一个迭代器从文件读取数据,一次读取一个数据行。
    readline()方法从一个打开的文件读取一行数据。
    seek()方法可以用来将文件“退回”到起始位置。
    close()方法关闭一个之前打开的文件。
    split()方法可以将一个字符串分解为一个子串列表。
    Python中不可改变的常量列表称为元祖(tuple)。一旦将列表数据赋至一个元祖,就不能再改变。元祖是不可改变的。
    数据不符合期望的格式时会出现ValueError。
    数据无法正常访问时会出现IOError(例如,可能你的数据文件已经被移走或者重命名)。
    help() BIF允许你在IDLE shell中访问Python的文档。
    find()方法会在一个字符串中查找一个特定子串。
    not关键字将一个条件取反。
    try/except语句提供了一个异常处理机制,从而保护可能导致运行时错误的某些代码行。
    pass语句就是Python的空语句或null语句,它什么也不做。

持久存储

  • Python术语

    不可变类型——Python中的一些数据类型,一旦赋值,这个值就不能再改变。
    腌制——将数据对象保存到一个持久存储中的过程。
    解除腌制——从持久存储中恢复一个已保存的数据对象的过程。

  • 核心要点

    strip()方法可以从字符串中去除不想要的空白符。
    print() BIF的file参数控制将数据发送/保存到哪里。
    finally组总会执行,而不论try/except语句中出现什么异常。
    会向except组传入一个异常对象,并使用as关键字赋至一个标识符。
    str() BIF可以用来访问任何数据对象(支持串转换)的串表示。
    locals() BIF返回当前作用域中的变量集合。
    in操作符用于检查成员关系。
    +操作符用于字符串时将连接两个字符串,用于数字时则会将两个数相加。
    with语句会自动处理所有已打开文件的关闭工作,即使出现异常也不例外。with语句也是用as关键字。
    sys.stdout是Python中所谓的标准输出,可以从标准库的sys模块访问。
    标准库的pickle模块允许你容易而高效地将Python数据对象保存到磁盘以及从磁盘恢复。
    pickle.dump()函数将数据保存到磁盘。
    pickle.load()函数从磁盘恢复数据。

推导数据

  • Python术语

    原地排序——转换然后替换。
    复制排序——转换然后返回。
    方法串联——从左向右读,对数据应用一组方法。
    函数串联——从右向左读,对数据应用一组函数。
    列表推导——在一行上指定一个转换(而不是使用迭代)
    分片——从一个列表访问多个列表。
    集合——一组无序的数据项,其中不包含重复项。

  • 核心要点

    sort()方法可以在原地改变列表的顺序。
    sorted() BIF通过提供复制排序可以对几乎任何数据结构排序。
    向sort()或sorted()传入reverse=True可以按降序排列数据。
    如果有如下代码:
    new_l=[]
    for t in old_l:new_l.append(len(t))
    使用列表推导重写这个代码,可以写作:new_l=[len(t) for t in old_l]
    要访问一个列表中的多个数据项,可以使用分片。如my_list[3:6],这会访问列表中从索引位置3直到(但不包括)索引位置6的列表项。
    使用set()工厂方法可以创建一个集合。

定制数据对象

  • Python术语

    字典——这是一个内置的数据结构,允许将数据值与键关联。
    键——字典中查找的部分。
    值——字典中的数据部分(可以是任何值,也包括另一种数据结构)。
    self——这是一个方法参数,总是指向当前对象实例。

  • 核心要点

    使用dict()工厂函数或使用{}可以创建一个空字典。
    要访问一个名为person的字典中与键Name关联的值,可以使用我们熟悉的中括号记法:person[‘Name’].
    类似于列表和集合,Python的字典会随着新数据增加到这个数据结构中而动态扩大。
    可以先创建一个空字典:new_d={}或new_d=dict()然后增加数据d[‘Name’] = ‘Err name’来填充字典,或者也可以一次完成以上的全部工作:new_d={‘Name’:’Err name’}。
    可以用class关键字定义一个类。
    类方法(代码)与函数的定义基本相同,也就是说,要用def关键字定义。
    类属性(数据)就像是对象实例中的变量。
    可以在类中定义init()方法来初始化对象实例。
    类中定义的每个方法都必须提供self作为第一个参数。
    类中的每个属性前面都必须有self,从而将数据与其实例关联。
    类可以从零开始构建,也可以从Python的内置类或者其他定制类继承。
    类可以放在一个Python模块中,并上传到PyPI。

Web开发

  • Python术语

    @property——这是一个修饰符,可以使类方法表现的像是一个类属性。

  • Web术语

    Web应用——在Web上运行一个程序。
    Web请求——从Web浏览器发送到Web服务器。
    Web响应——从Web服务器发送到Web浏览器,作为对Web请求的相应。
    CGI——通用网关接口,允许Web服务器运行一个服务器端程序。

  • 核心要点

    模型-视图-控制器(Model-View-Controller)模式允许你采用一种可维护的方式设计和构建一个Web应用的数据。
    模型存储Web应用的数据。
    视图显示Web应用的用户界面。
    控制器将所有代码与编程逻辑“粘合”在一起。
    标准库string模块包含一个名为Template的类,它支持简单的字符串替换。
    标准库http.server模块可以用来在Python中建立一个简单的Web服务器。
    标准库CGI模块对编写CGI脚本提供了支持。
    标准库glob模块非常适合处理文件名列表。
    在Linux和Mac OS X上可以使用chmod+x命令设置可执行权限位。
    启用标准库cgitb模块时,允许在浏览器中查看CGI编码错误。
    CGI代码中可以使用cgitb。enable()打开CGI跟踪。
    可以使用cgi.FieldStorage()访问作为Web请求一部分发送给Web服务器的数据,数据将作为一个Python字典。

移动应用开发

  • Python术语

    Python2——Python的前一个版本,它与Python3存在兼容性问题。

  • Android术语

    SL4A——全名为Scripting Layer for Android,允许在你的Android设备上运行Python。
    AVD——这是一个Andorid虚拟设备,允许在你的计算机上模拟Android设备。

  • 核心要点

    JSON库模块允许将Python的内置类型转换为基于文本的JSON数据交换格式。
    使用json.dumps()可以创建一个Python类型的字符串版本。
    使用json.loads()可以从一个JSON字符串创建一个Python类型。
    如果数据使用JSON发送,需要将其Content-Type:设置为application/json。
    urllib和urllib2库模块(都在Python 2中提供)可以用来从一个程序向Web服务器发送编码的数据(使用urlencode()和urlopen()函数)。
    sys模块提供了sys.stdin、sys.stdout、sys.stderr输入流。

管理你的数据

  • Python术语

    数据库API——这是一种标准化机制,用于从Python程序访问一个基于SQL的数据流。

  • 数据库术语

    数据库——一个或多个表的集合。
    表——一个或多个数据行的集合,每个数据行包括一个或多个列。
    SQL——结构化查询语句,这是数据库世界的语言,允许使用CREATE、INSERT、SELECT等处理数据库中的数据。

  • 核心要点

    标准库cgi模块汇总fieldStorage()方法允许从CGI脚本访问发送至Web服务器的数据。
    标准os库包含一个environ字典,可以很方便地访问程序的环境设置。
    SQLite数据库系统作为sqlite3标准库包含在Python中。
    connect()方法允许通过一个已有的连接与数据库通信。
    cursor()方法允许通过一个已有的连接与数据库通信。
    execute()方法允许通过一个已有的连接向数据库发送一个SQL查询。
    commit()方法使之前对数据库所做的修改永久保留。
    rollback()方法取消对数据做出的所有未完成的修改。
    close()方法关闭与数据库的一个现有连接。
    ?占位符允许在Python代码中为SQL语句指定参数。

扩展你的Web应用

  • App Engine术语

    Datastore——Google App Engine用来持久存储数据的数据库。
    实体(Entity)——对应数据行的一种称呼。
    属性(Property)——应对数据值的一种称呼。

  • 核心要点

    每个App Engine Web应用必须有一个名为app.yaml的配置文件
    可以使用GAE Launcher启动、停止、监视、测试、上传和部署你的Web应用。
    App Engine的模板技术建立在Django项目所用模板技术基础之上。
    App Engine还可以使用Django的表单验证框架。
    可以使用self.response对象来构造一个GAE Web的响应
    可以使用self.request对象来访问一个GAE Web应用的表单数据
    响应一个GET请求时,要在一个get()方法中实现必要的功能。
    响应一个POST请求时,要在一个post()方法中实现必要的功能。
    使用put()方法将数据存储在App Engine datastore中。

处理复杂性

  • Python术语

    条件列表推导尾部包括一个if语句,允许在推导运行控制哪些项可以增加新列表中。
    列表推导可以重写为一个等价的for循环。

  • 核心要点

    input() BIF允许为用户提供提示语并接入输入。
    如果你在使用Python 2而且需要input()函数,那么可以使用raw_input()函数。
    可以结合Python内置的列表、集合和字典构造复杂的数据结构。
    time模块作为标准库的一部分,包含了大量函数可以完成时间格式之间的转换。


- 参考文献:Head First Python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值