python超级无敌培训课件.ppt

上传人:小飞机 文档编号:1287620 上传时间:2022-11-04 格式:PPT 页数:35 大小:617.68KB
返回 下载 相关 举报
python超级无敌培训课件.ppt_第1页
第1页 / 共35页
python超级无敌培训课件.ppt_第2页
第2页 / 共35页
python超级无敌培训课件.ppt_第3页
第3页 / 共35页
python超级无敌培训课件.ppt_第4页
第4页 / 共35页
python超级无敌培训课件.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《python超级无敌培训课件.ppt》由会员分享,可在线阅读,更多相关《python超级无敌培训课件.ppt(35页珍藏版)》请在三一办公上搜索。

1、ython培训,员工培训中心,ython培训员工培训中心,课程目的,总则:本课程主要讲解python的程序结构和python中各元素的用法。 掌握python的程序结构。 掌握python的数据类型的用法。 掌握python的输入、输出。 掌握python的函数定义。 掌握python的域名空间管理。 掌握python的模块的用法。 了解python的错误处理 了解使用python的类。课程讲解需要结合实际的环境运作。,课程目的总则:本课程主要讲解python的程序结构和pyth,索引,ython程序结构python数据结构模块输入、输出错误异常类,索引python程序结构,ython程序结构

2、,ython基本类型: int,长度为4字节。 long,长度不限制,可以无限大 string:字符串 float:浮点类型,兼容C语言的float和double数值运算(同C语言一样): 运算符: +, -, * ,/ 赋值: =2+2,2/3,1.0/3,(4+5)/2width=2,width/3,ython程序结构python基本类型:,ython程序结构,Python 能够进行字符串运算。字符串有多种表示方法,可以使用单引号 和双引号。“abcdef”, asdsakldjflisdf,sajdds中国sdf字符串可跨越多行,用反斜杠续行。 hello = This is a rat

3、her long string containingn several lines of text just as you would do in C.n Note that whitespace at the beginning of the line is significant.n 字符串可以利用+操作符进行连接操作,用*进行任意次连接操作 hello=“123456”hello=hello + “hello” + “test” +机会hello = w*5 hello = hello *10获取字符串长度使用len(str),print len(hello),ython程序结构Pyth

4、on 能够进行字符串运算。字符串,ython程序结构,ython的语句块是以代码行前面的空格个数和制表符号的个数来确定的。空格数相同或者制表符数相同的代码行作为一个整的语句块来确定的。python控制流分为: 顺序结构 a=1; b=2 c=“abcd” print a,b,c注意顺序结构个语句行的前面的空格或者制表符数量必须一致。,ython程序结构python的语句块是以代码行前面的空格,ython程序结构,if 语句可以使用0 个或多个elif部分,并且else部分是可选的。关键字elif是else if的简写,可避免书写时连续的缩进。 if . elif . elif .结构相当于其他

5、语言中的switch 或者case结构 。if x 0: x = 0 print Negative changed to zero elif x = 0: print Zero elif x = 1: print Single else: print More,ython程序结构if 语句可以使用0 个或多个elif部,ython程序结构,Python 的for语句和C或Pascal中的for语句有所区别:并不是遍历递增数列(Pascal),也不是给出步长和结束条件进行循环(C),而是按元素在序列中出现的顺序遍历序列元素。 如:a = cat, window, defenestrate for

6、 x in a: print x, len(x) 如果要达到C或者pascal语言的循环的效果,必须借助range函数for i in range(0,100,2): print irange函数原型如下:range(start,end,step),ython程序结构Python 的for语句和C或Pasc,ython程序结构,while语句与C语言类似:while condition: print 100, a=1 print a在for和while循环的控制块中,可以使用:continue,break继续循环或者终止循环,ython程序结构while语句与C语言类似:,函数定义,关键字de

7、f用于函数的定义,它后面是函数名,括号里的是形参表。 函数体从下一行开始,并用tab 键缩进或者4个空格。函数体的第一条语句可以是说明性的文字,即文档字符串,或称docstring。许多工具使用文档字符串自动打印文档,或者方便用户交互地浏览代码; 在代码中增加文档字符串是个好习惯,应该尽量养成。def func(a,b): 该函数将实现a和b的加法 return a+b,函数定义关键字def用于函数的定义,它后面是函数名,括号里的,ython程序结构,ython的函数可以象C+语言一样,使用缺省参数。def func(a,b=10): return a+bfunc(10)func(10,100

8、)另外,可以在函数调用时,按照参数的名称指定参数的值。如下面的函数调用,都是表示同样的效果。func(a=10,b=100)func(b=100,a=10)func(10,b=100),ython程序结构python的函数可以象C+语言一样,,索引,ython程序结构python数据结构模块输入、输出错误异常类,索引python程序结构,字符串的用法,字符串有灵活的取子串的方法:xm:n,m、n可以是正数,也可以是负数。 m为起点,n为终点。如果为负数,就从右边数,基数为-1。 如果为正数,就从左边数,基数为0。xn,n=0,表示取x的第n个字符作为字符串。x=“123456”,那么x1就为”

9、2”。 n0,表示从后往前取第n-1个字符。 x=“123456”,那么x-2就为”5”可以的用法:xm::从第m到最后。x=“123456”, 那么x2:就为”3456”x:n:从最前到第n-1个。x=“123456”, 那么x:2就为”12”xm:n:从第m个到第n-1个。x=“123456”, 那么x2:4就为”34”,字符串的用法字符串有灵活的取子串的方法:,表用法,最有用的是表, 写成括以方括号并用逗号分开的一组的元素。表的元素不一定具有相同数据类型。 x1,”123123”,20.0,1,2,3,45表中的元素可以是任何的python对象。表的用法:xn:取表中的元素。n0时,从左

10、数,n0,从右数。 如上面的x,x2为”123123”xm:n:取表的子表。m为起点,终点为n-1。 如 x2:3就为20表可以使用加法,将两个表连接起来。x + 12,30,”test”删除其中的元素,使用: del xn,删除第n个元素。,表用法最有用的是表, 写成括以方括号并用逗号分开的一组的元素,元组用法,表和字符串有许多相似的属性,如:索引和片段操作。它们是序列这一数据类型的两个例子。Python是较为先进的语言,那么它的序列数据类型也应有先进之处。的确,Python有另一种标准的序列:元组。 元组由一组逗号隔开的值组成,(1,2,”aasdfsadf”,test”)元组是只读的,不

11、能添加和删除其中的元素。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,

12、2:10,(1,2,3):10 x1=(1,2,4)x“asdfsd”=1:1,2:10 x(1,2,3)=10 x100=“test”,字典字典有时也称“关联存储”和“关联数组”。和序列通过数值来,索引,ython程序结构python数据结构模块输入、输出错误异常类,索引python程序结构,模块,模块可以包含可执行语句和函数定义。语句的目的是初始化模块,它们在模块第一次引入的时候执行。6.1 每一个模块都拥有私有的符号表,作为全局符号表供所有在模块中定义的函数使用。因此,模块的作者可以放心在模块内部使用全局变量而不用担心意外地与用户的全局变量冲突。另一方面,如果你清楚你在做什么,你也像引用

13、模块函数一样和模块的全局变量打交道:modname.itemname. 模块也能引入模块。出于习惯,而不是需要,所有的import语句应该放在模块(或脚本等等)开头。引入的模块名存放在模块的全局符号表中。 import testtest.val=1from test import test #引入除了下划线(_)打头以外的所有名字。 print val,模块模块可以包含可执行语句和函数定义。语句的目的是初始化模块,模块的搜索路径,当输入名为spam模块的时候,解释器首先在当前目录下搜索名为“spam.py”的文件,然在环境变量$PYTHONPATH所标明的一组目录下搜索。$PYTHONPATH

14、与shell变量的表示方法是一样的,即一系列目录名。如果$PYTHONPATH没有设置,或文件还是找不到,搜索将在一个与安装无关的默认路径上继续。实际上,搜索模块是按照表变量sys.path中的目录顺序来的。 sys.path由包含作为输入的脚本所在的目录(或当前目录),$PYTHONPATH 和那个与安装无关的默认路径所初始化的。 import sysprint sys.path,模块的搜索路径当输入名为spam模块的时候,解释器首先在当前,标准模块,Python带有标准模块库,相关描述在独立的文档Python 库参考(以后称库参考)中。一些提供了不属于语言内核的操作的模块也被集成到了解释器

15、中,这是出于效率,或对诸如系统调用之类的操作系统存取等方面的考虑。有一个模块值得注意: sys,它被集成到每一个Python解释器中。变量sys.path是字符串表,决定解释器模块搜索的路径,由环境变量$PYTHONPATH(不存在时用内置的默认路径)初始化。你可以用标准的表操作来改变这个变量。 import sys sys.path.append(/ufs/guido/lib/python),标准模块Python带有标准模块库,相关描述在独立的文档P,索引,ython程序结构python数据结构模块输入、输出错误异常类,索引python程序结构,高级格式化输出,常常会遇到需要输出一些有格式的

16、东西,而不仅仅是一些用空格分开的数值。Python提供了两种方法,可以控制格式化的输出。一种方法是事先将输出的字符串排列好;利用字符的块操作,用户可以组织任意形式的输出。标准模块的string中提供了各种填充符,我们后面将会讨论到。另一种方法是使用%加字符串作为左参数的方法。与C语言中的函数sprintf()-风格类似,%则将其左边的格式串与其右参数对应,并且从格式化操作中返回格式串对应的值。va=1;vb=2;vc=“asdfsdF”print va,vb,vcprint “%d,%x,%s” % (va,vb,vc)print格式print formatstring % (parm lis

17、t),高级格式化输出 常常会遇到需要输出一些有格式的东西,而不仅仅,文件的读写,open() 方法返回一个文件对象,通常使用两个参数:“open(filename, mode)”。 f= open(“test”,”r+”)读取文件的内容,可以调用方法f.read(size)。它从文件中读取一定数量的数据并以字符串的形式返回。当 size参数省略或为负数时,将返回整个的文件内容。 s = f.read(100)f.readline()用以读取一行数据。f.write(“asdfsadfsdafn”)往文件对象f中写入数据。字符串可以是二进制流数据。f.tell()获取文件的长度。f.close(

18、)关闭文件。,文件的读写 open() 方法返回一个文件对象,通常使用两个,索引,ython程序结构python数据结构模块输入、输出错误异常类,索引 python程序结构,语法错误,语法错误又称之为语法分析错误,它可能是你在学习Python语言过程中抱怨得最多的。 while 1 print Hello world File , line 1 while 1 print Hello world SyntaxError: invalid syntax 语法分析器会打印出错误所在行的内容,并用一个小 箭头 标出该行中最早出现错误的地方。错误就是(至少是)由箭头 前面 的标志符引起的。在上面的例子

19、中,错误发生在关键字 print 的地方,在它的前面缺少了 (:) 。同时,语法分析器还会打印出文件名和行号,以便于在脚本中查找该错误。,语法错误 语法错误又称之为语法分析错误,它可能是你在学习Py,异常,尽管语句或表达式的语法定义都正确,但是执行时仍然会产生错误,这样的错误就称之为 异常 。然而, 大多数的异常并不是由程序本身控制错误提示信息的输出的。 4 + spam*3 Traceback (innermost last): File , line 1 NameError: spam 2 + 2 Traceback (innermost last): File , line 1 Type

20、Error: illegal argument type for built-in operation 上面各例中,最后一行说明了发生的是哪一种类型的异常。异常有不同的类型,并作为提示信息的一部分,上面的例子中的异常类型有:NameError 和 TypeError 。打印的异常类型的名字是该类异常的内部名,对于内部定义的异常是这样的,而对于用户自定义的异常(也是很有用的异常)则不同,标准的异常类型名称是内部的标识符(不是保留字)。,异常 尽管语句或表达式的语法定义都正确,但是执行时仍然会产生,异常处理,接管异常处理,类似C异常处理:try: . . #执行语句except (RuntimeE

21、rror, TypeError): . . #异常时的处理语句except TypeError,detail: . print detail #异常时的处理语句else: . .当异常发生时,应该能传递某一个值,这个值能被 except 子句中的 参数 接收。这个参数的类型和出现的形式由异常类型决定。对于带有参数的异常类型,except 子句可以在异常名或异常名列表后指定一个变量,用来接收参数的值。类似上面的TypeError,detail应用。,异常处理接管异常处理,类似C异常处理:try:,引发异常,raise 语句强制产生某种异常发生,例如: raise NameError, HiThe

22、re Traceback (innermost last): File “”, line 1 NameError: HiThere raise后面的第一个参数指定了引发异常的类型,第二个参数则指定异常的参数,并且是可选择的。 通过将一个字符串赋值给一个变量,程序可以命名自己的异常。例如: my_exc = my_exc try: . raise my_exc, 2*2 . except my_exc, val: . print My exception occurred, value:, val . My exception occurred, value: 4 以上例子是引发用户自定义的异常

23、。,引发异常raise 语句强制产生某种异常发生,例如: ,索引,ython程序结构python数据结构模块输入、输出错误异常类,索引python程序结构,域和命名空间,命名空间是名字到对象的映射。所有名字都是用字典实现的,不过这个无需深究(除非出于性能的考虑),而且今后可能会改变。命名空间的例子是:内置的名字集(函数,如 abs(), 及内置的异常名);模块中的全局名;函数调用中的局部名。在某种意义上,对象的一组属性名也组成了一个命名空间。对于命名空间,最重要的是要知道,在不同命名空间内的名字绝对没有任何联系;比如,两个模块可以同时定义名为“maximize”的函数而不会引起冲突但用户应在函

24、数名前面加上模块名作为前缀。 域指的是Python程序中某个命名空间能被直接存取的范围。“直接存取”是指通过对名字的无条件引用来定位命名空间中的名字。 虽然域是静态定义的,却是动态使用的。在执行的每一时刻,有且只有三个嵌套的域同时作用(即,三个域可同时直接存取): 内层域,最先搜索;中间层域,之后搜索,包含有当前模块的全局名;和外层域,最后搜索,是内置名字的命名空间。(相当于C语言的局部空间,文件空间,全局空间)通常,局部域(按文本)引用当前函数的名字。在函数之外,局部域和全局域引用相同的命名空间:模块的命名空间。类定义还会在局部域中开辟另一个命名空间。,域和命名空间 命名空间是名字到对象的映

25、射。所有名字都是用字典,类定义,最简单的类定义如下: class ClassName: . . . 类定义和函数定义(defy语句)必须在他们起作用之前执行。在实际运用中,类定义中的语句通常是函数定义,其它的语句也是允许出现的,有时候也很有用 当类定义(经过结尾)正常结束时,就会有一个类对象被创建。它基本上是类定义创建的命名空间的内容的包装 。,类定义最简单的类定义如下:,类对象,类对象支持两种操作:属性引用和实例化。 属性引用有着统一的语法:对象.属性。合法的属性名是所有在类建立时刻是类的命名空间中的名字。class MyClass: A simple example class i = 1

26、2345 def f(x): return hello world 那么MyClass.i和MyClass.f是合法的属性名,它分别返回整数和函数对象。类的实例化使用了函数的表示法,把类对象当作是没有参数的函数所返回的类的新实例,如(假设类如前例所定义): x = MyClass() #例子建立类的新实例,并它赋给局部变量x。,类对象类对象支持两种操作:属性引用和实例化。,类的方法对象,类的方法定义的一般格式:class MyClass: def setvalue(self,val): self.val = val def getvalue(self): return self.val 其中,

27、在方法的参数列表中,必须显示的指定实例对象本身,如上面的self,类似C+中的this指针,不过this是隐藏的。,类的方法对象类的方法定义的一般格式:,类和结构,有时候需要类似于Pascal的record,或者是C的struct一样的数据类型,把一组命名过的数据捆在一块儿。空的类定义很简单: class Employee: pass john = Employee() # Create an empty employee record # Fill the fields of the record john.name = John Doe john.dept = computer lab j

28、ohn.salary = 1000 对某个抽象数据类型进行操作的代码通常可以被转换一个类的方法来模拟。例如,如果你想建立对文件对象进行格式化的函数,你可以定义一个类,让这个类带有两个方法read()和readline(),分别从缓冲区中读取字符串,并作为参数传递。 实例方法对象也有属性: m.im_self是一个对象,该对象的方法是一个实例,m.im_func是方法所对应的对象。,类和结构有时候需要类似于Pascal的record,或者是C,总结,详细内容请参阅:python指南。下一步:阅读库参考,至少要翻一下。库参考里有类型和模块的全面(虽然很扼要)资料,能节省不少你编写Python程序的时间。Python的主站点是 python.org,上面有代码、文档和与Python相关的网页的链接。 谢谢!,总结详细内容请参阅:python指南。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号