您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > Python入门经典
dPython入门原著GuidovanRossum翻译李东风第一章介绍第二章解释程序的使用第三章基本使用第四章流程控制第五章Python数据结构第六章模块第七章输入输出第八章错误与例外第九章类第十章进一步学习第一章介绍脚本语言是类似DOS批处理、UNIXshell程序的语言。脚本语言不需要每次编译再执行,并且在执行中可以很容易地访问正在运行的程序,甚至可以动态地修改正在运行的程序,适用于快速地开发以及完成一些简单的任务。在使用脚本语言时常常需要增的新的功能,但有时因为脚本语言本来就已经很慢、很大、很复杂了而不能实现;或者,所需的功能涉及只能用C语言提供的系统调用或其他函数——通常所要解决的问题没有重要到必须用C语言重写的程度;或者,解决问题需要诸如可变长度字符串等数据类型(如文件名的有序列表),这样的数据类型在脚本语言中十分容易而C语言则需要很多工作才能实现;或者,编程者不熟悉C语言:这些情况下还是可以使用脚本语言的。在这样的情况下,Python可能正好适合你的需要。Python使用简单,但它是一个真正的程序语言,而且比shell提供了更多结构和对大型程序的支持。另一方面,它比C提供更多的错误检查,它是一个非常高级的语言,内置了各种高级数据结构,如灵活的数组和字典,这些数据结构要用C高效实现的话可能要花费你几天的时间。由于Python具有更一般的数据结构,它比Awk甚至Perl适用的范围都广,而许多东西在Python内至少和在这些语言内一样容易。Python允许你把程序分解为模块,模块可以在其他Python程序中重用。它带有一大批标准模块可以作为你自己的程序的基础——或作为学习Python编程的例子。系统还提供了关于文件输入输出、系统调用、插座(sockets)的东西,甚至提供了窗口系统(STDWIN)的通用接口。Python是一个解释性语言,因为不需要编译和连接所以能节省大量的程序开发时间。解释程序可以交互使用,这样可以可以很容易地试验语言的各种特色,写只用一次的程序,或在从底向上程序开发中测试函数。它也是一个方便的计算器。Python允许你写出非常严谨而且可读的程序。用Python写的程序通常都比相应的C程序要短,因为如下几个理由:高级的数据结构允许你用一个语句表达复杂的操作;复合语句是靠缩进而不是用表示开始和结束的括号;不需要变量声明或参量声明。Python是可扩充的:如果你会用C语言编程就很容易为解释程序增加新的内置函数或模块,这样可以以最快速度执行关键操作,或把Python程序和只能以二进制码提供的库(如不同厂商提供的图形库)连接起来。当你变得确实很在行时你可以把Python解释器与用C写的应用相连接,把它作为该应用的扩展或命令语言。Python的命名是由BBC的“MontyPython'sFlyingCircus”节目而得,与蟒蛇没有什么关系。第二章解释程序的使用在命令行键入python或在Windows环境下双击相应的图标可以进入Python的解释程序。如果要运行储存在文件中的Python程序,可以用python文件名的形式。进入解释程序的环境后,解释程序称为处于交互状态。在这种状态下系统用主提示提示输入下一个命令,这一般是三个大于号(),如果需要续行系统用次提示提示输入,缺省为三个小数点(...)。在主提示下键入文件尾符号(在UNIX中为Control-D,在DOS或Windows中为Control-Z)可以正常退出解释程序。Python解释程序的有些版本支持命令行编辑和命令历史,使用用Emacs或vi的键组合。第三章基本使用下面我们用例子来介绍Python的基本用法。在例子中,用户输入和系统输出靠有没有提示(和...)来分别。如果要试这些例子的话,需要键入提示后的所有命令,例子中没有提示的行是系统的输出。注意只有次提示的行意味着需要键入一个空行,这用于结束多行命令。3.1用Python作计算器使用启动解释程序,等待主提示出现。解释程序可以作为计算器使用。键入一个表达式,解释程序就可以输出结果。表达式的写法很直观:+,-,*,/,%,**等算符的作用和其它大多数语言(如Pascal或C)没什么差别,括号可以用来组合。例如:2+24#这是一个注释...2+242+2#和代码在同一行的注释4(50-5*6)/45#整数除法得下面的整数...7/327/-3-3和C中一样,等于号用来给变量赋值,赋值的结果不显示:width=20height=5*9width*height900可以同时给几个变量赋同一个值:x=y=z=0#把x,y和z赋零x0y0z0Python完全支持浮点数,混合类型的运算会把整数先转换成浮点数:4*2.5/3.33.03030303037.0/23.5Python也提供了复数,方法是用j和J作为虚数单位,如1+1j,3.14e-10j,等等。3.2.字符串Python除处理数字外还可以处理字符串,字符串用单撇号或双撇号包裹:'spameggs''spameggs''doesn\'t'doesn'tdoesn'tdoesn't'Yes,hesaid.''Yes,hesaid.'\Yes,\hesaid.'Yes,hesaid.''Isn\'t,shesaid.''Isn\'t,shesaid.'字符串输出格式与输入的样子相同,都是用撇号包裹,撇号和其它特殊字符用用反斜杠转义。如果字符串中有单撇号而没有双撇号则用双撇号包裹,否则应该用单撇号包裹。后面要介绍的print语句可以不带撇号或转义输出字符串。字符串可以用+号连接起来,用*号重复:word='Help'+'A'word'HelpA'''+word*5+'''HelpAHelpAHelpAHelpAHelpA'字符串可以象在C中那样用下标索引,字符串的第一个字符下标为0。Python没有单独的字符数据类型,一个字符就是长度为一的字符串。象在Icon语言中那样,可以用片段(slice)记号来指定子串,片段即用冒号隔开的两个下标。word[4]'A'word[0:2]'He'word[2:4]'lp'片段有很好的缺省值:第一下标省略时缺省为零,第二下标省略时缺省为字符串的长度。word[:2]#前两个字符'He'word[2:]#除前两个字符串外的部分'lpA'注意s[:i]+s[i:]等于s是片段运算的一个有用的恒等式。word[:2]+word[2:]'HelpA'word[:3]+word[3:]'HelpA'不合理的片段下标可以很好地得到解释:过大的下标被换成字符串长度,上界小于下界时返回空串。word[1:100]'elpA'word[10:]''word[2:1]''下标允许为负数,这时从右向左数。例如:word[-1]#最后一个字符'A'word[-2]#倒数第二个字符'p'word[-2:]#最后两个字符'pA'word[:-2]#除最后两个字符外的部分'Hel'但要注意的是-0实际还是0,所以它不会从右向左数!word[-0]#(因为-0等于0)'H'超出范围的片段下标被截断,但在非片段的情况下不要这样:word[-100:]'HelpA'word[-10]#错误Traceback(innermostlast):Filestdin,line1IndexError:stringindexoutofrange记住片段意义的最好方法是把下标看成是字符之间的点,第一个字符的左边界号码为0。有n个字符的字符串的最后一个字符的右边界下标为n,例如:+---+---+---+---+---+|H|e|l|p|A|+---+---+---+---+---+012345-5-4-3-2-1第一行数字给出字符串中下标0到5的位置,第二行给出相应的负下标。从i到j的片段由在边界i和j之间的字符组成。对于非负下标,如果下标都在界内,则片段的长度为下标的差。例如,word[1:3]的长度为2。内置函数len()返回字符串的长度:s='supercalifragilisticexpialidocious'len(s)34多行的长字符串也可以用行尾反斜杠续行,续行的行首空白不被忽略,如hello=Thisisaratherlongstringcontaining\n\severallinesoftextjustasyouwoulddoinC.\n\Notethatwhitespaceatthebeginningofthelineis\significant.\nprinthello结果为ThisisaratherlongstringcontainingseverallinesoftextjustasyouwoulddoinC.Notethatwhitespaceatthebeginningofthelineissignificant.对于特别长的字符串(比如包含说明的几段文字),如果用上面的方式每行都用\n\结尾是很麻烦的,特别是这样无法用象Emacs这样的功能强大的编辑器重新编排。对这种情况,可以使用三重撇号,例如hello=Thisstringisboundedbytripledoublequotes(3times).Unescapednewlinesinthestringareretained,though\itisstillpossible\ntouseallnormalescapesequences.Whitespaceatthebeginningofalineissignificant.Ifyouneedtoincludethreeopeningquotesyouhavetoescapeatleastoneofthem,e.g.\.Thisstringendsinanewline.三重撇号字符串也可以用三个单撇号,没有任何语义差别。多行的字符串常量可以直接连接起来,字符串常量之间用空格分隔则在编译时可以自动连接起来,这样可以把一个长字符串连接起来而不需要牺牲缩进对齐或性能,不象用加号连接需要运算,也不象字符串串内的换行其行首空格需要保持。3.3列表Python中有几种复合数据类型,用来把其它值组合到一起。其中最灵活的是列表,可以写成在方括号之间用逗号隔开的若干值(项)。列表的项不必取同一类型。a=['spam','eggs',100,1234]a['spam','eggs',100,1234]象字符串下标那样,列表下标从0开始,列表可以取片段,可以连接,等等:a[0]'spam'a[3]1234a[-2]100a[1:-1]['eggs',100]a[:2]+['bacon',2*2]['spam','eggs','bacon',4]3*a[:3]+['Boe!']['spam','eggs',100,'spam','eggs',100,'spam','eggs',100,'Boe!']与字符串不同的是列表是可变的,可以修改列表的每个元素:a['spam','eggs',100,1234]a[2]=a[2]+23a['spam','eggs',123,1234]也可以给一个片段重新赋值,这甚至可以改变表的大小:#替换若干项:...a[0:2]=[1,12]a[1,12,123,1234]#去掉若干项:...a[0:2]=[]a[123,1234]#插入若干项:...a[1:1]=['bletch','xyzzy']a[12
本文标题:Python入门经典
链接地址:https://www.777doc.com/doc-4209971 .html