《Python编程金典》读书笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《Python编程金典》读书笔记整理:Jimsof肥肥世家yjnet@21cn.com第一次发布时间:2004年5月26日TableofContents1.绪论2.python编程概述2.1.知识点2.2.良好的编程习惯2.3.常见编程错误2.4.测试和调试提示2.5.移植性提示3.控制流程3.1.知识点3.2.良好的编程习惯3.3.常见编程错误3.4.移植性提示3.5.软件工程知识4.函数4.1.知识点4.2.良好的编程习惯4.3.常见编程错误4.4.移植性提示4.5.软件工程知识4.6.性能提示5.列表、元组和字典5.1.知识点6.公共网关接口(CGI)入门6.1.知识点7.基于面向对象的编程7.1.知识点7.2.良好的编程习惯7.3.常见编程错误7.4.测试和调试提示7.5.软件工程知识7.6.性能提示8.自定义类8.1.知识点8.2.良好的编程习惯8.3.常见编程错误8.4.软件工程知识8.5.性能提示9.面向对象编程:继承9.1.知识点9.2.常见编程错误9.3.软件工程知识9.4.性能提示10.图形用户界面组件(一)10.1.知识点10.2.良好的编程习惯10.3.常见编程错误10.4.界面知识11.图形用户界面组件(二)11.1.知识点11.2.测试和调试提示11.3.界面知识12.异常处理12.1.知识点12.2.良好的编程习惯12.3.常见编程错误12.4.测试和调试提示12.5.软件工程知识12.6.性能提示13.字符串处理和正则表达式13.1.知识点13.2.良好的编程习惯13.3.性能提示14.文件处理和序列化14.1.知识点14.2.良好编程习惯14.3.常见编程错误14.4.性能提示15.可扩展标记语言(XML)15.1.知识点15.2.常见编程错误15.3.移植性提示15.4.软件工程知识15.5.性能提示15.6.示例16.Python的XML处理16.1.知识点16.2.良好编程习惯16.3.示例17.数据库应用程序编程接口(DB-API)17.1.知识点17.2.良好的编程习惯17.3.常见编程错误17.4.移植性提示18.进程管理18.1.知识点18.2.良好的编程习惯18.3.移植性提示19.多线程处理19.1.知识点19.2.性能提示19.3.常见编程错误19.4.测试和调试提示19.5.性能提示20.联网20.1.知识点20.2.常见编程错误20.3.软件工程知识20.4.性能提示ListofExamples15.1.sort.xml15.2.sorting.xsl16.1.动态生成XML内容16.2.一个XML论坛的例子Chapter1.绪论Chapter2.python编程概述TableofContents2.1.知识点2.2.良好的编程习惯2.3.常见编程错误2.4.测试和调试提示2.5.移植性提示2.1.知识点1.raw_input是python的内建函数,要求用户输入,输入结果是一个字符串。example:test=raw_input(pleaseinputanumber:\n)2.python是一种区分大小写的语言。3.id函数返回变量内存位置,type函数返回变量类型。4.在python2.2前,只提供一种除法运算符(/),运算的行为(即是Floor整数除法,还是True浮点除法)是由操作数的类型来决定的。如果操作数全是整数,就执行Floor除法。如一个或两个操作数是浮点数,就执行True浮点除法。5.在python2.2后的所有版本中,设计者决定去除(/)的随意性。决定采用两个操作符,其中/执行True除法;//执行Floor除法。但这样会造成旧版本的程序出错,所以设计者采取了一种折衷的办法。如果不先声明,python还是使用旧的/操作符。如果要使用新的方法就要进行声明,声明方式是:from__future__importdivision,这样就可以用/和//了。6.格式化字符串printtestis%d%integer1,表示方法和c语言差不多。7.如果语句太长需要用到“\”这个续行符。8.在过程式编程中,程序员把重点放在写函数上,用于执行一些任务的行动被组合成函数,不同的函数进一步进行组合,即构成程序。9.采用面向对象编程,程序员的工作主要放在创建自已的“类”上。每个类包含数据及一系列函数。类的数据组件被称为数据成员或属性,类的函数组件则称为方法。10.重用,重用,再重用是影响软件开发三大因素。就如影响房地产价格三大因素是地段,地段,不是地段。2.2.良好的编程习惯1.在程序中使用丰富的注释。注释有助于其他程序员理解程序,有助于程序员调试,并列出有用的信息。以后修改或更新代码时,注释还有助于你理解自已当初编写的程序。2.每个程序都应以一条注释开始,描述该程序的用途。3.加一些空行来增强程序的可读性。4.有意义的变量名可改善程序的“自编档能力”,也就是说,只需读一读程序,就能轻松理解它。5.避免标识符以下划线和双下划线开头,因为python解释器可能保留了那些名称,供内部使用。6.在二元运算符两端添加一个空格。这样可以突出运算符,增强程序的可读性。7.和代数一样,可在表达式中添加原本不需要的括号,使其更清晰。2.3.常见编程错误1.试图访问一个未赋值的变量,会产生运行时错误。2.不要把“==”相等和“=”赋值运算符操混了。赋值符号“=”不能出现在if等的条件语句中。3.忘记在if结构中插入冒号是语法错误。ifa==b:...4.不要忘记了缩进格式,否则会出现语法错误。由于tab键在不同系统中的长度不同,所以建议将3个空格定为一个缩进级别。如果在一个程序中缩进量不同,会造成语法错误。2.4.测试和调试提示1.使用-i选项(python-itest.py)。会导致编译器在执行了文件中的语句后进行交互模式,这非常适用于调试程序。2.为了避免难以察觉的错误,务必在程序中采用统一和正确的缩进。2.5.移植性提示1.预计在python3.0中,运算符/只执行True除法。3.0发布后,程序需更新自已的程序。Chapter3.控制流程TableofContents3.1.知识点3.2.良好的编程习惯3.3.常见编程错误3.4.移植性提示3.5.软件工程知识3.1.知识点1.所谓“算法”,是指解决一个问题的“过程”,它包含两个含义,1是要采取的行动,2是采取这些行动的顺序。2.研究表明,只要三种结构就可以写出所有程序,这三种结构是:顺序结构,选择结构以及重复结构。3.算法求精,就是把算法用伪代码逐层分解成可以用python程序实现的过程。4.+=符号将符号右边的表达式的值加到左边的变量上,再将结果存回左边的变量。变量要先初始化,如果没有会出错。5.range(0,10,1)代表一个从0到9共10个元素的序列,自增量为1。6.与非结构化程序相比,结构化编程所生成的程序要容量理解得多,所以更易测试、调试和修改,而且不易出错。3.2.良好的编程习惯1.初始化所有变量。2.在信号值控制的循环中,当提示输入时,应明确指明信息值是哪一个。3.当执行除法运算时,如除数可能为零,请务必明确检测。关在程序中进行相应处理,不要任由错误发生。4.在每个控制结构前后各留一个空行,将其同程序的其余部份区分开。5.嵌套级别过多,会使程序难以理解,通常应将嵌套控制在3级以内。6.避免在for循环主体更改控制变量的值,这有可能导致不易发现的逻辑错误。3.3.常见编程错误1.将所有浮点数假设为是精确的,会导致不正确的结果。浮点数在大多数计算机中只是近似数。2.在赋值符号左边的变量初始化之前试图使用增量赋值是错误的。3.如果忘记range函数返回的序列的第一个值是0,可以导致差1错误。3.4.移植性提示1.python2.0开始引入增量赋值符号,在老版本中python中使用增量赋值符号是语法错误。3.5.软件工程知识1.经验表明,用计算机解决问题最有效的办法是为解决方案开发一种算法。一旦开发出正确的算法,通常能根据它方便地生成一个能实际工作的python程序。2.在从事大型的、复杂的项目时,一定要开发算法。这样才可能不会导致严重错误,从而推迟项目进度。Chapter4.函数TableofContents4.1.知识点4.2.良好的编程习惯4.3.常见编程错误4.4.移植性提示4.5.软件工程知识4.6.性能提示4.1.知识点1.python的程序组件包括函数、类、模块和包。“模块”是包含函数和类定义的文件。许多模块可以组合成一个集合,称为“包”。2.模块位于python安装目录的库目录下。在unix/linux下,是/usr/lib/python2.2或/usr/local/lib/python2.2,在windows上,则是\python\lib。3.函数定义中创建的所有变量都是“局部变量”--只存在于声明它们的函数中。4.python定义了3个命名空间,分别是局部(local),全局(global)和内建(built-in)。程序访问标识符的值时,python会按特定顺序搜索命名空间(即按局部,全局和内建顺序)。5.importrandomasrandomModule指定引用名。现在可以用randomModule来引用random中的函数。6.重复使用重复的结构,如for和while;递归使用选择结构,如if和if/else。之间的差别是,重复采用一个重复结构,而递归采用重复的函数调用。两者都要进行终止测试:重复会在循环继续条件为false时终止;递归在识别出基本条件是终止。由计数器控制的重复和递归都是逐渐终止:重复会不断改变一个计数器,直到计数器的值使循环继续条件变为false;递归则不断对原始问题进行简化,直到抵达基本条件。重复和递归都可无休止地进行:如果循环继续检测永远都不能变成false,会发生无限循环;如果递归调用永远不能将问题简化成基本条件,会发生无穷递归。7.函数的默认参数设置需在def语句中定义。如:deftest(aa=1,bb=2,cc=3):xxx。8.关键字参数可以不按位置顺序出现在函数调用中。用keyword=value方式就可以了。4.2.良好的编程习惯1.尽快熟悉核心python模块提供的函数和类集合。2.避免变量名遮蔽外层作用域中的名称。为此,要注意避免标识符与内建命名空间中的标识符同名,并避免在程序中使用重复的标识符。3.使用默认参数可简化函数调用的编写,但有的程序员认为,显式指定所有参数会使程序更易读。4.3.常见编程错误1.用局部命名空间中的一个标识符遮蔽模块或内建命名空间中的一个标识符,可能引起逻辑错误。2.默认参数必须全部靠右。省略非靠右的参数是语法错误。4.4.移植性提示1.使用核心python模块中的函数,通常可使用程序更易移植。4.5.软件工程知识1.避免重复别人的劳动。尽量使用标准库模块函数,不要写新函数。这样可加快程序开发进度,并增强可靠性。因为你所使用的是经良好设计和测试的代码。2.每个函数都应该只限执行单一的、良好定义的任务,函数名应清楚地描述那个任务。3.如果实在想不出能准确表达函数作用的名称,就表明函数可能执行了太多的分散任务,通常,最好把这种函数分解成多个更小的函数。4.程序应写为若干个小函数的集合。这样使程序更易编写、调试、维护和修改。5.如函数需要大量的参数,表明它执行的任务可能过多。请考虑将函数分解成更小的函数,令其执行单独的任务。函数的def语句尽可能不超过一行。6.采用递归方式能解决的任何问题也可采用重复方式(非递归方式)解决。如果递归方式能够更自然地反映问题,并使程序易于理解和调试,通常应该首选递归方式。通常,只需几行代码就可完成一个递归方式,重复方式则相反,它需要大量的代码来实现。选择递归的另一个原因是,重复方案也许不是很直观。7.采用清晰的、层次清楚的方式对程序进行“函数化”,有助于保证良好的软件工程,但性能上要付出一定代价。4.6.性能提示1.不要试图改写现成的模块函数使其更高效,因为这些函数已非常完美了。2.一

1 / 66
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功