Python教程原文.docx
《Python教程原文.docx》由会员分享,可在线阅读,更多相关《Python教程原文.docx(132页珍藏版)》请在课桌文档上搜索。
1、Python是一个简洁学习又功能强大的程序语旨。它含有高效率的高阶数据结构,也是一个简洁但是有效果的对象导向程序语言(object-orientedprogramming)0PythOn优雅的语法和动态型态识别(dynamictyping),加上直译式(intepretion)的本质,使得它成为一个在多种功能多种平台上撰写脚本(SCriPtS)和快速开发的志向语言。各种主要平台的PythOn直译器(interpreter)和延长的标准链接库(Iibrary)都可以在PythOn的网站()上免费卜载和H由流传(包含原始码和二元执行档(binaryform)o在该网站上也有很多的档案和连结,包括了
2、免费、第三者开发的PythOn模块、程序和工具,以和很多的附带文件。Python的直译器也可以很简洁的延长,可以加入新的由C或是C+(或其它可以由C呼叫的程序语言)所写的函数或是数据型态。Python也很适合用来当作其它应用程序的延长语言(译者:比如说用PythOn来延长CAD,DBMaker等的功前)。本教学文件将非正式的介绍给读者PythOn语言和系统的基本观念和特性。假如读者手边有一个Python的直译器将有助于获得实际的学问,但是本文件的说明都很足够,所以假如单纯离线阅读也是可以的。若对于标准的对象和模块有爱好的话,请参阅Python1.ibraryReference0若是要知道正式P
3、ythOn语言.的标准定义的话,可参考PythonReferenceManual。若有爱好用C或C+写延K的功能的话,请参考ExtendingandEmbeddingthePythonInterpreter以和Python/CAPIReference。市面上也有很多更深化探讨Python的书籍。本教学文件并不试图完整的介绍每一个PythOn的特性,甚至也不试图介绍每一个常用的功能C相反的,本文件介绍很多PythOn值得相识的功能,并且让读者对这个语言的大致风貌方一个了解。在读完此书之后,读者应当可以起先读和写PythOn的模块和程序,并且应当可以起先学习各种在Python1.ibraryRef
4、erenCe所介绍的模块了。2开胃菜假如你曾经写过大型的Shenscript,你或许能了解那种感觉:你想要新增加一个功能,但是这个SeriPt已经实在有够大够慢够困难的了,或者说,你想要加入的新功能须要呼叫系统功能或是其它函数,但是这些功能/函数只有C才能呼叫。你要解决的问题似乎并没有严竣到要重新用C来写整个程序,或者有些问题因为要用到可变长度的字符串或是特殊的数据结构(像是用排序过的文件名称组成序列(IiSt),用C来写实在比ShClI麻烦的太多,乂或者是你根本不是对C很熟.另外个情境是这样的:或许你要运用好几个C的链接库,但是标准开发C程序的过程(写/编译/测试/重新编译)实在太花时间,你
5、须要能快速的开发好软件。又或者你已经些好一个应用程序,这个程序可以运用一个延长的语言来限制。你不想创建一种语各,然后还得写好这个语言的编译器,还得把这个编译器跟你的程序放在一起。在这些状况之下,Python或许正是你所须要的语旨。PythOn虽然简洁,却是不折不扣的程序语言。对大型的程序来说,它比起SheIl能供应更多的结构性和支持。另外一方面,它也供应了比C语言更多的错误检查。由于PythOn是一个特别高阶的语言,所以它有很多内建的数据型态像是方弹性的数组和字典(dictiOnary)等等,假如用C来做的话得花上你大半天的时间。正是因为Python有较为一般性的数据型态,Python可以应用
6、的葩的比起awk甚或是Perl要广的很多,最至少,Python跟这些语言一样简洁开发。PythOn的另外一个特点就是可以将程序切成小模块,然后这些模块还可以应用在其它的程序之中。PythOn本身也彳一个相当大的标准模块库可以让你来运用,或者当作学习Python程序设计的他例。在PythOn中也有内建的模块可以供应很多功能,诸如:档案I/O、系统呼叫、sockets,甚至是与Tk之类的GUl工具互动的接口。PythOn是一个直译式的语言,可以省掉你在开发程序时不少编译和连结程序的时间。这个Python的直译器甚至可以交互式的运用,让你在写一些小程序来试验PythOn语言的特性,或是测试程序时可以
7、写节约不少时间。你还可以用Python直译器来当作计算器呢:Python让你可以写出特别精练和可读性高的程序。用Fython写出的程序通常比用C或C+写的程序要短得多,其理由如F: 因为其高阶的数据型态,使得你可以用很简洁的叙述(Statement)就能够表达困难的运作过程 Python运用缩排来代替C/C+中常见的前后括号 Python不须要变显或是参数的宣告Python是延长性高的语言。假如你知道如何写C语言的程序的话,你很简洁就可以在Python的直译器中加入新的内建函数(function)或是模块,这样做的好处是你可以让程序中关键的部分速度调到最快,或者是连结PythOn到binary
8、的链接库(例如是厂商做好的图形链接阵)去。一但你真的须要,你也可以把Python直译器加入到你用C写的应用程序里面去,然后Python就变成你的应用程序的延长或是商业化的语言ro另外一提的是,这个程序的命名由来是源自于BBC闻名的节目MontyPythonsFlyingCircus,跟其它恶心的爬虫类没有任何关系。假如你的文件中要提到MontyPython的活,不但照准,而且还相当激励。2.1燃后克现在你应当对PythOn感到有些爱好了吧,接下来你将看到比较多的的细微环付探讨“学习语言的最好途径是运用之,赶快动手吧“在下章我们将探讨到如何运用Python的直译器,虽然相当的一般,但是假如你要尝
9、试一下之后的他例的话,这是重要的基础。本教学文件的其余部分将用很多的例子介绍Python语言的各种不同的特性,先从简洁的表示式(CXPreSSionS)起先,将会谈到叙述(StatementS)和数据型态,然后是函式(functions)和模块(module),最终会谈到较高深的观念像是例外情形(CXCCPtiOnS)和运用者自订的类别(USer-definedCIaSSeS)等等。3运用Pythem的直译弊3.1 如何启动宜译叁在UniX之类的操作系统上,假如有安装的话,PythOn直译器通常安装在usrlocalbinPythOn这个书目中。你可能须要先在SheIl中设定找寻usrkcal
10、bin书目,这样你才可以在Shen中打入以下的指令来启动PythOn直译器python你的PythOn直译器安装的位置是可以在安装时设定的,因此也有可能安装在其它的地方。你或许须要问你周遭的Python大师或是系统管理员才能知道正确的安装位置(usrlocal/python是另外一个普遍的可能安装所在)。要离开Python直译器的话,打入EoF的字符(在UniX上是Control-D,在DOS和WindoWS上是Control-Z就会使得直译器离开(zeroCXitStatUs)。假如行不通的话,你可以打入以下指令离开直译器:importsys;sys.exit.PythOn直译器运用每行编辑
11、,应当不难运用。在UniX匕或许安装PythOn直译器的人有安装运用GNUreadline链接库的功能,这样的话你会有交互式编辑以和编辑过去数据的功能,最简洁的检查你有没有这项功能的方法就是在PythOn的提示之卜.打入ContrOl-P,假如有哗声的话,就表示你方这项功能,你可以硼到附求A去看特殊键的用法。假如你没有听到哗声,或是只出现P的话,就表示你没有这项功能,你得运用退格键(backspace)来清除目前所在行的字符了。Python直译器的操作方法根UniXShCII很像:当被呼叫时所连结的标准输入是ttydevice(终端机)的话,直译器会互动的读和执行所输入的指令。当被呼叫时加入文
12、件名称参数或所连结的标准输入是连到档案的话,直译器就会读入并执行该档所含有的script0第三种启动直译器的方法是打入以Z的指令python-ccommandarg.,这个指令会执行command所代表的叙述(这跟SheII的-cOPtion很像),因为Python叙述(StatemCnt)常方空白和特殊字符,所以用此法时可以把command所代表的叙述用”括起来,以免跟SheII的其它特殊字符或是参数方所混淆。要留意的是pythonfile指令跟pythonVfile”指令是有所区分的对后者而言,不单单只方执行这个SCriPt,而且程序中有关输入的需求(例如呼叫i11put()或是rawJn
13、putO)也都会由这个file来满意。由于此file已经在程序执行之初已经被从头到尾读过一次,所以一执行这个程序将会立刻就遇到了EoF。相反的对于前一个写法来说,程序的输入需求是由任何连结到Python直译器的标准输入(Standardinput)的装置或档案来满意的,而这个或许才是你所想要的结果。当SCriPt档案在运用的时候,或许你会想要执行这个SeriPt然后还可以之后接着进入互动的模式。这时你可以加入-i这个选项,但是犹如前一段所说的,假如此SCriPt是由标准输入来读进去的话就没有方法这样做了。3.1.1 参数的传递假如interpreter相识SyS的话(译:可用“importsy
14、s”指令),SCriPt的文件名和附加传入的参数都会被纪录在sysargv这个变量并并传给SeriPt来运用Csys.argv是列的字符串,长度至少为1,假如你什么都档案或参数都没传的话,sys.argv01就是一个空字符串。假如SeriPt的名字是就是标准输入的意思)的活,sys.argvO就会被设为当运用-CCanmand的话,sys.argvO就被设定为-c,全部的在-ccommand之后的OPtion(例如-i)都会被当成sys.argv而被Command所处理,所以就不是当作。PtiOn样的来看待了。3.1.2互动模式当指令是由tty终端机来传入时,我们称之为互动模式(interac
15、tivemode)。在此模式之下会出现主要的吩咐提示符号(primaryPrOmPt)来提示输入下一个指令,这个PrimaiyPrOmPt通常是”。假如是指令是持续上一行的话就会出现SeCOndaryPromPt符号,这个secondaryprompt就通常是。一进入Python的互动模式的话直译器会出现个欢迎信息,以和版本编号辑版权说明,接下来就是第一个PromPt.如下所示:pythonPython1.5.2b2(#1,Feb281999,00:02:06)GCC2.8.1onsunos5Copyright1991-1995StichtingMathematischCentrum,Amst
16、erdam当你输入须要多行的结构时,直译器就会自动会出现持续上一行的PromPt符号,卜.面的例子是if叙述的状况:the_world_is_flat=1ifthe_world_is_flat:.printBecarefulnottofalloff!Becarefulnottofalloff!32直译卷和其周边环境3.2.1程序错误处理当有错误产生时,直译器就会在屏幕印出错误的信息以和StaCktrace的全部数据。在互动模式之下,印完数据之后会再印出PrOmPt来。假如输入是来自于档案的话,在出现错误的状况卜直译器在印出StaCktrace之后程序会以nonzeroexit的状态结束。(此处
17、探讨不包含已经由try叙述和except子句处理外的状况(EXCePtions)。有些的程序错误是没有方法挽救并且会造成nonzeroexit的结束状况,这经常是内部的不样或是某种runningoutofmemory所造成。全部的错误信息都会被写入至标准errorStream之中,正常的程序执行的输出则会写入到标准(StandardOUtPUt)输出之中C假如在Primary或是SeCondaryPrOmPte之卜打入中断字符(通常是Control-C或是DE1.),这会造成输入的中断并且会回到PromPt之Ko(有一个GNUReadlinePaCkage的问题可能会使这个功能失效。)在指令执
18、行之中打入中断字符则会引起KeyboardInterrupt的exception,而这是可以在try叙述中处理的C3.2.2 执行Python脚本在BSD之类的UniX系统上,我们可以在SCriPt的最前面加入以下的叙述(类似Sheilscript),并变更档案属性为可执行:#!usrbinenvpython如此SCriPt就会变成可执行档,可以干脆执行(假设Python的直译器是在USCr的$PATH)变盘之中)。#!这两个字必需在SCriPt档案的最前面。值得一提的是在Python之中也当作注解(COmment)部分起先的符号。3.2.3 交互式启动档当你运用互动模式的时候,假如可以在每次
19、直译器要启动时先执行一些吩咐的话将是很有用的.要达成如此功能,你可以设定一个文件名称给环境变量$PYTHoNSTARTUP,这个档案可以包含你想要在启动时执行的吩咐,类似.profile在UniXshell中的用法。这个启动档(StartUPfile)只有对在互动模式下有效,假如你用PythOn读入SCriPt时就没有用,在当devtty是吩咐的输入来源也没有用(其它的状况与互动模式相类似)。这个StartUPfiIe所执行吩咐的命名空间是与其它互动模式下输入的指令相同,所以在StartUPfile内定义或是import的对象,在之后的互动模式指令中都是可以干脆运用的。你也可以在这个Start
20、UPfile中变更sys.psl和sys.ps2,如此就可以变更你的PrimaiyPrOmPt和SCCOndaryprompto假如你在你的startupfile中想要运用另外的在目前书目的startupfile,你只须要在主要StartUPfile(globalstart-upfile)写入ifos.path.isfile(.pythonrc.py):execfile(.pythonrc.py)。假如你想要在你的SCriPt之中运用startupfile的话,你必需在你的SCriPt中写入:importos=os.environ.get(,PYTHONSTARTUP)ifandos.path
21、.is):exec)4非正式的PythOn介在底下的例子里,你可以很简洁区分凡是须要输入的地方都会出现PromPtS(或,.),凡是输出的结果则没有。假如你想要跟着这个教学文件一-起做的话,你就得打入全部在PromPtS之后的指令,凡是没有PromPtS出现的行就是直译器输出的结果。值得留意的是,secondarypromt之后假如什么东西都没有,表示这是一个空行(干腌按ENTER的结果),也表示这是一个多行指令的结束。在本文件中的大部分例子,都有加上注释,甚至是那些互动模式下的例子。注阳Comment)在PythOn中是以#之后的东西都是注释(译:跟PerI一样)。注释可以自成一行,也可以跟
22、在空格符或是程序代码的后面。但是,假如#是在字符串常数(StringIiteral)之中的话,就不代表注释的意义,而只是一个一股字符罢了。底下是一些例子:#thisisthefirstcommentSPM=1#andthisisthesecondcomment#.andnowathird!STRING=#Thisisnotacomment.4.1 把Python当作计算春来用现在我们来试试些简洁的PythOn指令吧。请先后勖Python的直译器并且等待Primaryprompt()的出现。(应当不会很久的)4.1.1 数字直译器就似乎一个计算器一样:你可以打入一个表示式(expression)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 教程 原文
链接地址:https://www.desk33.com/p-1471313.html