第一章,问答环节
python的优点,面向对象,free,可移植,功能强大(动态类型,自动内存管理等),可混合,simple
python的缺点是相比c/c++,速度还不够快。
python的主要用途:系统编程,用户图形接口,internet脚本,组件集成,数据库编程,快速原型,数值计算,多媒体和人工智能
第二章,python如何运行
PVM(python虚拟机),运行.pyc文件字节码。这里的m.pyc字节码不是机器的二进制码,二是python定义的一种表现形式。因此也是python比c/c++慢的原因。一般的,python的运行速度介于编译语言和解释语言之间。

执行优化工具:psyco实时编译器,shedskin c++转换器,将python变成二进制文件,加快执行速度。
冻结二进制文件:将python字节码,PVM等一起打包成一个单独的文件包。
第三章,如何运行程序
运行一个python程序

编写好一个python文件以后,如果想在其他文件中使用,需要使用import。
但是,import第一次之后再使用就不会运行,因为import是一个开销很大的过程。如果希望再执行,可以reload函数。

模块的属性。例如在spam.py中,使用属性name。



可以使用如上两种方式。
Python的IDE:IDLE,Eclipse,Komodo,pythonWin
第四章,python的对象类型
python的核心数据类型(内置对象)

对象的分类

数字:除了常用的加减乘除以外,可以使用math,random等包。

字符串:字符串和c中的字符串类似,但是对象不能改变,例如给s[0]赋值就不可以。


列表:

字典:是一个映射



元组:不可改变的列表。

文件:文件的读和写

此外,还有集合set,十进制数decimal,布尔值等其他核心类型。
第五章,数字

Python表达式操作符及程序:

Python中的变量和基本表达式。

关于str和repr显示格式。repr是默认交换格式回显,也就是代码直接运行表示,str和print一样,是用户友好格式。例如,输入1/3。

一些其他的内置数学工具:math模块,random模块

集合set

第六章,动态类型简介
python的变量,对象和引用是通过一条语句完成的,不同于静态编译语言java/c/c++,例如:
>>a=3,从python角度:


python中的类型属于对象,而不是变量

python中的变量不使用时会被动态收回,类似于java中的垃圾回收。共享引用:如下图所示。


共享引用和拷贝,两者不同(上面是共享引用,下面是拷贝)
共享引用和相等


第七章,字符串

一,单引等于双引
二,用转义序列代表特殊字节


第三,三重引号编写多行字符串块
第四,索引和分片


第五,强制类型转换

第六,字符串格式化%d,%s

第七,字符串方法调用

第八章,列表与字典
第一,列表的常量和操作


第二,字典的常量和操作


第九章,元组,文件与其他
元组(tuple)是由简单的对象组成,与列表类似,但是不能在原处修改。
常见的元组和运算

注意,元组的不可变性只适用于元组本身顶层而并非内容。

为什么有了列表还要元组?是因为元组的不可变性保证不会被另一个引用修改。
常见的文件运算:

【例】

eval()方法:将元素变成对象,例如把字符串变成列表

pickle模块类似于序列化,将python的对象保存在文件中,不需要使用字符串。
相等性和一致性:
==:表示相等性
is:表示一致性

python的类型层次

第十章,python语句简介


python的语句的特点是不需要括号,不要分号也不需要大括号
第十一章,赋值,表达式和打印
一,赋值语句

一些增强赋值语句

常见的python表达式

打印语句

【例】

第十二章,if测试
通用格式if

python的语法规则
- 语句是逐个运行的;
- 块和语句的边界会自动被检测
- 复合语句=首行+:+缩进语句
- 空白行,空格以及注释通常被忽略
- 文档字符串会被忽略,但会被保存由工具显示
python中的真值测试

第十三章,while和for循环
while的一般格式

break,continue,pass和else循环

说明,循环else分句是python所特有的。例如查找素数的python代码:

for循环的一般格式:

【例】按块读取文本


迭代器:

循环计数器:range()

用range()还可以用来遍历数列。例如,将L中的每个数字变大1:

zip()函数,把多个序列并排配对:

通常情况下,zip()函数可以用来构造字典。

第十四章,文档
python的文档资源

dir函数:抓取对象内可用所有属性列表的简单方式。

help()函数:输入help(str.replace())

PyDoc:HTML报表
第十五章,函数基础
def语句


另外,上例说明,python中的函数是多态的。
第十六章,作用域和参数
python中作用域的LEGB查找原则:

global语句:

工厂函数:
一个能够记住嵌套作用域的变量值的函数。

python中的参数传递:
- 不可变参数是通过值进行传递;
- 可变对象是通过指针进行传递;




参数匹配模型

任意参数的实例:
(1)收集参数

(2)分解参数

第十七章,函数的高级话题
函数设计概念:
- 耦合:对于输入使用参数,对于输出使用return。只有真正有必要的情况下使用全局变量。不要改变可变类型的参数。避免改变在另一个模块文件中的变量。
- 内聚:每一个函数都应该有一个单一的统一的目标。
- 大小:每一个函数应该相对较小。

第十八章,模块
import a.py
模块搜索路径:
- 程序的主目录
- pythonpath目录
- 标准链接哭目录
- 任何.pth文件的内容
第十九章,模块代码编写基础


同时,from语句可以达到同样的效果。


模块命名空间:一旦模块加载后,它的作用域就变成了模块对象的属性的命名空间。
重载模块 reload
reload和import,from不同的是:reload是python中的内置函数而不是语句;传给reload的是已经存在的模块对象,而不是变量名。
第二十章,模块包
包导入实例

转载需保留链接来源:软件玩家 » 「Python学习手册」读书笔记
【苹果】用苹果的Siri制作合成语音文件
Python操作sqlite数据库
Python遍历本地文件系统结果按条件排序