【文档说明】python超级无敌培训课件.ppt,共(35)页,584.023 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-44417.html
以下为本文档部分文字说明:
培训中心版权所有,未经许可不得向外传播,违者必究python培训员工培训中心培训中心版权所有,未经许可不得向外传播,违者必究课程目的总则:本课程主要讲解python的程序结构和python中各元素的用
法。掌握python的程序结构。掌握python的数据类型的用法。掌握python的输入、输出。掌握python的函数定义。掌握python的域名空间管理。掌握python的模块的用法。了解python的错误处理了解使用python的类。课程讲解需要结合实际的
环境运作。培训中心版权所有,未经许可不得向外传播,违者必究索引•python程序结构•python数据结构•模块•输入、输出•错误异常•类培训中心版权所有,未经许可不得向外传播,违者必究python程序结构python基本类型:int,
长度为4字节。long,长度不限制,可以无限大string:字符串float:浮点类型,兼容C语言的float和double数值运算(同C语言一样):运算符:+,-,*,/赋值:=2+2,2/3,1.0/3,(4+5)
/2width=2,width/3培训中心版权所有,未经许可不得向外传播,违者必究python程序结构Python能够进行字符串运算。字符串有多种表示方法,可以使用单引号和双引号。“abcdef”,„asdsakldjflisdf‟,‟sajd\‟ds中国sdf‟字符串可跨越多行,用
反斜杠续行。hello="Thisisaratherlongstringcontaining\n\severallinesoftextjustasyouwoulddoinC.\n\Notethatwhitespaceatthebeginningofthelin
eis\significant.\n"字符串可以利用+操作符进行连接操作,用*进行任意次连接操作hello=“123456”hello=hello+“hello”+“test”+‟机会’hello=„w‟*5hello=hello*10获取字符串长度使用len(str),printlen(h
ello)培训中心版权所有,未经许可不得向外传播,违者必究python程序结构python的语句块是以代码行前面的空格个数和制表符号的个数来确定的。空格数相同或者制表符数相同的代码行作为一个整的语句块来确定的。python控制流分为:顺序结构a=1
;b=2c=“abcd”printa,b,c注意顺序结构个语句行的前面的空格或者制表符数量必须一致。培训中心版权所有,未经许可不得向外传播,违者必究python程序结构if语句可以使用0个或多个elif
部分,并且else部分是可选的。关键字elif是elseif的简写,可避免书写时连续的缩进。if...elif...elif...结构相当于其他语言中的switch或者case结构。ifx<0:x=0print'Negativecha
ngedtozero'elifx==0:print'Zero'elifx==1:print'Single'else:print'More'培训中心版权所有,未经许可不得向外传播,违者必究python程序结构Python的for语句和C或Pascal中的for语句有所区别:并不
是遍历递增数列(Pascal),也不是给出步长和结束条件进行循环(C),而是按元素在序列中出现的顺序遍历序列元素。如:a=['cat','window','defenestrate']forxina:printx,len(x)如果要达到C或者pascal语言的循环的效果,必须借助range函
数foriinrange(0,100,2):printirange函数原型如下:range(start,end,step)培训中心版权所有,未经许可不得向外传播,违者必究python程序结构while语句与C语言类似:while
condition:print100,a=1printa在for和while循环的控制块中,可以使用:continue,break继续循环或者终止循环培训中心版权所有,未经许可不得向外传播,违者必究函数定义关键字def用于函数的定义,它后面是
函数名,括号里的是形参表。函数体从下一行开始,并用tab键缩进或者4个空格。函数体的第一条语句可以是说明性的文字,即文档字符串,或称docstring。许多工具使用文档字符串自动打印文档,或者方便用户交互地浏览代码;在代码中增加文档字符串是个好
习惯,应该尽量养成。deffunc(a,b):„‟„该函数将实现a和b的加法’‘’returna+b培训中心版权所有,未经许可不得向外传播,违者必究python程序结构python的函数可以象C++语言一样,使用缺省参数。deffunc(a,b=10):returna+
bfunc(10)func(10,100)另外,可以在函数调用时,按照参数的名称指定参数的值。如下面的函数调用,都是表示同样的效果。func(a=10,b=100)func(b=100,a=10)func(10,b=100)培训中心版权所有,未经许
可不得向外传播,违者必究索引•python程序结构•python数据结构•模块•输入、输出•错误异常•类培训中心版权所有,未经许可不得向外传播,违者必究字符串的用法字符串有灵活的取子串的方法:x[m:n],m、n可以是正数,也可以是负数。m为起点,n为终点。如果为负数,就从右边
数,基数为-1。如果为正数,就从左边数,基数为0。x[n],n>=0,表示取x的第n个字符作为字符串。x=“123456”,那么x[1]就为”2”。n<0,表示从后往前取第n-1个字符。x=“123456”,那么x[-2]就为”5”可以的用法:
x[m:]:从第m到最后。x=“123456”,那么x[2:]就为”3456”x[:n]:从最前到第n-1个。x=“123456”,那么x[:2]就为”12”x[m:n]:从第m个到第n-1个。x=“123456”,那么x[2:4]就为”34”培训中心版权所有,未经许可不得向外传播
,违者必究表用法最有用的是表,写成括以方括号并用逗号分开的一组的元素。表的元素不一定具有相同数据类型。x=[1,”123123”,20.0,[1,2,3,45]]表中的元素可以是任何的python对象。表的用法:x[n]:取表中的元素。
n>0时,从左数,n<0,从右数。如上面的x,x[2]为”123123”x[m:n]:取表的子表。m为起点,终点为n-1。如x[2:3]就为[20]表可以使用加法,将两个表连接起来。x+[12,30,”tes
t”]删除其中的元素,使用:delx[n],删除第n个元素。培训中心版权所有,未经许可不得向外传播,违者必究元组用法表和字符串有许多相似的属性,如:索引和片段操作。它们是序列这一数据类型的两个例子。Python是较为先进的语言,那么它的序列数据类型也应有先进之处。的确,Python有另一种
标准的序列:元组。元组由一组逗号隔开的值组成,(1,2,”aasdfsadf”,test”)元组是只读的,不能添加和删除其中的元素。x=1,2,3,”asdfasdf”,(1,2,3)x也是一个元组空的元组只能用(,)表示,不能用
()表示x1,x2,x3,x4,x5=x将x的各元素给x1,x2,x3,x4,x5赋值培训中心版权所有,未经许可不得向外传播,违者必究字典字典有时也称“关联存储”和“关联数组”。和序列通过数值来索引不同,字典通过键来索引;字符串和数值都能作为键。
元组如果只包含字符串、数值和元组,也可以作为键。但不能把表作为键。最好把字典看成同无序的具有唯一(在同一个字典中)键的键:值对组成。一对空的花括号{}代表空字典。x={1:(1,2,3),”asdfsd”:{1:1,2:10},(1,2,3):10}x[1]=(1
,2,4)x[“asdfsd”]={1:1,2:10}x[(1,2,3)]=10x[100]=“test”培训中心版权所有,未经许可不得向外传播,违者必究索引•python程序结构•python数据结构•模块•输入、输出•错误异常•类培训中心版权所有,未经许可不得向外
传播,违者必究模块模块可以包含可执行语句和函数定义。语句的目的是初始化模块,它们在模块第一次引入的时候执行。6.1每一个模块都拥有私有的符号表,作为全局符号表供所有在模块中定义的函数使用。因此,模块的作者可以放心在模块内部使用全局变量而不用担心意外地与用户的全局变量冲
突。另一方面,如果你清楚你在做什么,你也像引用模块函数一样和模块的全局变量打交道:modname.itemname.模块也能引入模块。出于习惯,而不是需要,所有的import语句应该放在模块(或脚本等
等)开头。引入的模块名存放在模块的全局符号表中。importtesttest.val=1fromtestimporttest#引入除了下划线(_)打头以外的所有名字。printval培训中心版权所有,未经许可不得向外传播,违者必究模块的搜索
路径当输入名为spam模块的时候,解释器首先在当前目录下搜索名为“spam.py”的文件,然在环境变量$PYTHONPATH所标明的一组目录下搜索。$PYTHONPATH与shell变量的表示方法是一样的,即一系列目录名。如果$PYTHONPATH没有设置,或文件还是找不到
,搜索将在一个与安装无关的默认路径上继续。实际上,搜索模块是按照表变量sys.path中的目录顺序来的。sys.path由包含作为输入的脚本所在的目录(或当前目录),$PYTHONPATH和那个与安装无关的默认路径所初始化的。importsyspr
intsys.path培训中心版权所有,未经许可不得向外传播,违者必究标准模块Python带有标准模块库,相关描述在独立的文档《Python库参考》(以后称《库参考》)中。一些提供了不属于语言内核的操作的模块也
被集成到了解释器中,这是出于效率,或对诸如系统调用之类的操作系统存取等方面的考虑。有一个模块值得注意:sys,它被集成到每一个Python解释器中。变量sys.path是字符串表,决定解释器模块搜索的路径,由环境变量$
PYTHONPATH(不存在时用内置的默认路径)初始化。你可以用标准的表操作来改变这个变量。importsyssys.path.append('/ufs/guido/lib/python')培训中心版权所有,未经许可不得向外传播,违者必究索引•python程序结构•python数据结构
•模块•输入、输出•错误异常•类培训中心版权所有,未经许可不得向外传播,违者必究高级格式化输出常常会遇到需要输出一些有格式的东西,而不仅仅是一些用空格分开的数值。Python提供了两种方法,可以控制格式化的输出。一种方法是事先将输出的字符串排列好;利用字符的块操作,用户可以组织任意形式的输出。
标准模块的string中提供了各种填充符,我们后面将会讨论到。另一种方法是使用%加字符串作为左参数的方法。与C语言中的函数sprintf()-风格类似,%则将其左边的格式串与其右参数对应,并且从格式化操作中
返回格式串对应的值。va=1;vb=2;vc=“asdfsdF”printva,vb,vcprint“%d,%x,%s”%(va,vb,vc)print格式printformatstring%(parmlist)培训中心版
权所有,未经许可不得向外传播,违者必究文件的读写open()方法返回一个文件对象,通常使用两个参数:“open(filename,mode)”。f=open(“test”,”r+”)读取文件的内容,可
以调用方法f.read(size)。它从文件中读取一定数量的数据并以字符串的形式返回。当size参数省略或为负数时,将返回整个的文件内容。s=f.read(100)f.readline()用以读取一行数据。f.write(“asdfs
adfsdaf\n”)往文件对象f中写入数据。字符串可以是二进制流数据。f.tell()获取文件的长度。f.close()关闭文件。培训中心版权所有,未经许可不得向外传播,违者必究索引•python程序结构•python数据结构•模
块•输入、输出•错误异常•类培训中心版权所有,未经许可不得向外传播,违者必究语法错误语法错误又称之为语法分析错误,它可能是你在学习Python语言过程中抱怨得最多的。>>>while1print'Helloworld'File"<stdin>",line1while1print
'Helloworld'^SyntaxError:invalidsyntax语法分析器会打印出错误所在行的内容,并用一个小`箭头'标出该行中最早出现错误的地方。错误就是(至少是)由箭头前面的标志符引起的。在上面的例子中,错误发生在关键字print的地方,在它的前面缺少了(
":")。同时,语法分析器还会打印出文件名和行号,以便于在脚本中查找该错误。培训中心版权所有,未经许可不得向外传播,违者必究异常尽管语句或表达式的语法定义都正确,但是执行时仍然会产生错误,这样的错误就称之为异常。然
而,大多数的异常并不是由程序本身控制错误提示信息的输出的。>>>4+spam*3Traceback(innermostlast):File"<stdin>",line1NameError:spam>>>'2'+2Traceback(innermostlast):
File"<stdin>",line1TypeError:illegalargumenttypeforbuilt-inoperation上面各例中,最后一行说明了发生的是哪一种类型的异常。异常有不同的类
型,并作为提示信息的一部分,上面的例子中的异常类型有:NameError和TypeError。打印的异常类型的名字是该类异常的内部名,对于内部定义的异常是这样的,而对于用户自定义的异常(也是很有用的异常)则不同,
标准的异常类型名称是内部的标识符(不是保留字)。培训中心版权所有,未经许可不得向外传播,违者必究异常处理接管异常处理,类似C++异常处理:try:........#执行语句except(RuntimeError,TypeError):........#异常时的处理语句exceptTyp
eError,detail:...printdetail#异常时的处理语句else:........当异常发生时,应该能传递某一个值,这个值能被except子句中的参数接收。这个参数的类型和出现的形式由异常类型决定。
对于带有参数的异常类型,except子句可以在异常名或异常名列表后指定一个变量,用来接收参数的值。类似上面的TypeError,detail应用。培训中心版权所有,未经许可不得向外传播,违者必究引发异常raise语句强制产生某种异常发生,例如:>>>raiseN
ameError,„HiThere‟Traceback(innermostlast):File“<stdin>”,line1NameError:HiThereraise后面的第一个参数指定了引发异常的类型,第二个参数则指定异常的参数,并且是可选择的。
通过将一个字符串赋值给一个变量,程序可以命名自己的异常。例如:>>>my_exc='my_exc'>>>try:...raisemy_exc,2*2...exceptmy_exc,val:...print'Myexceptionoccurred,v
alue:',val...Myexceptionoccurred,value:4以上例子是引发用户自定义的异常。培训中心版权所有,未经许可不得向外传播,违者必究索引•python程序结构•python数据结构•模块•输入、输出•错误异常•类培训
中心版权所有,未经许可不得向外传播,违者必究域和命名空间命名空间是名字到对象的映射。所有名字都是用字典实现的,不过这个无需深究(除非出于性能的考虑),而且今后可能会改变。命名空间的例子是:内置的名字集(函数,如abs(),及内置的异常名);模块中的全局名;函数调用中的局部名。在某种意
义上,对象的一组属性名也组成了一个命名空间。对于命名空间,最重要的是要知道,在不同命名空间内的名字绝对没有任何联系;比如,两个模块可以同时定义名为“maximize”的函数而不会引起冲突——但用户应在函数名前面加
上模块名作为前缀。域指的是Python程序中某个命名空间能被直接存取的范围。“直接存取”是指通过对名字的无条件引用来定位命名空间中的名字。虽然域是静态定义的,却是动态使用的。在执行的每一时刻,有且只有三个嵌套的域同时作用(即,三个域可同时直接存取):内层域,最先搜索
;中间层域,之后搜索,包含有当前模块的全局名;和外层域,最后搜索,是内置名字的命名空间。(相当于C语言的局部空间,文件空间,全局空间)通常,局部域(按文本)引用当前函数的名字。在函数之外,局部域和全局域引用相同的命名空间:模块的命名空间。类定义还会
在局部域中开辟另一个命名空间。培训中心版权所有,未经许可不得向外传播,违者必究类定义最简单的类定义如下:classClassName:<statement-1>...<statement-N>类定义和函数定义(defy
语句)必须在他们起作用之前执行。在实际运用中,类定义中的语句通常是函数定义,其它的语句也是允许出现的,有时候也很有用当类定义(经过结尾)正常结束时,就会有一个类对象被创建。它基本上是类定义创建的命名空间的内容的包装。培训中心版权所有,未经许可不得向外传
播,违者必究类对象类对象支持两种操作:属性引用和实例化。属性引用有着统一的语法:对象.属性。合法的属性名是所有在类建立时刻是类的命名空间中的名字。classMyClass:"Asimpleexampleclass"i=12345def
f(x):return'helloworld'那么MyClass.i和MyClass.f是合法的属性名,它分别返回整数和函数对象。类的实例化使用了函数的表示法,把类对象当作是没有参数的函数所返回的类的新实例,如(假设类如前例所定义):x=MyClass()#例子建立类的新实例,并它赋给
局部变量x。培训中心版权所有,未经许可不得向外传播,违者必究类的方法对象类的方法定义的一般格式:classMyClass:defsetvalue(self,val):self.val=valdefgetvalue(self):re
turnself.val其中,在方法的参数列表中,必须显示的指定实例对象本身,如上面的self,类似C++中的this指针,不过this是隐藏的。培训中心版权所有,未经许可不得向外传播,违者必究类和结构有时候需要类似于Pascal的record,或者是C的struct一样的数据类型,把
一组命名过的数据捆在一块儿。空的类定义很简单:classEmployee:passjohn=Employee()#Createanemptyemployeerecord#Fillthefieldsoftherecordjohn.name='JohnDoe'john.dept='compute
rlab'john.salary=1000对某个抽象数据类型进行操作的代码通常可以被转换一个类的方法来模拟。例如,如果你想建立对文件对象进行格式化的函数,你可以定义一个类,让这个类带有两个方法read()和r
eadline(),分别从缓冲区中读取字符串,并作为参数传递。实例方法对象也有属性:m.im_self是一个对象,该对象的方法是一个实例,m.im_func是方法所对应的对象。培训中心版权所有,未经许可不得向外传播,违者必究总结详细内容
请参阅:《python指南》。下一步:阅读库参考,至少要翻一下。库参考里有类型和模块的全面(虽然很扼要)资料,能节省不少你编写Python程序的时间。Python的主站点是python.org,上面有代码、文档和与Python相关的网页的链接。谢谢!