第5章 Python模块化程序设计ppt课件.pptx
-
资源ID:16976664
资源大小:5.22MB
全文页数:97页
- 资源格式: PPTX
下载积分:30金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
第5章 Python模块化程序设计ppt课件.pptx
第5章 Python模块化程序设计P y t h o n 语 言 程 序 设 计 与 应 用中国铁道出版社第5章Python模块化程序设计函数参数02函数的定义和使用01主要内容函数的递归03标准模块06模块导入与定义05第三方模块07内置函数0202045.1函数的定义和使用p 函数的定义函数的定义p 注意事项l函数定义采用def关键字,后跟函数名称,无须指定返回值的类型。l函数命名规则与变量命名规则相同,尽量采用有意义的函数名。l函数参数可以是零个或者多个(多个时用“,”分隔),放在括号()内,无须指定参数值类型;如果没有参数,括号()也不能省略。l函数功能在函数体中定义,可以是一个或多个语句组成。l函数返回值可以是基本数据类型,也可以是高级数据类型,通过return语句返回;没有返回值时可省略return语句;如果没有return语句或return语句后面没有具体的值,函数将返回None(空值)。函数的定义p 函数的定义函数的使用p 函数遵循“先定义、后使用”的原则函数的使用【例5-1】定义一个判断某一年是否是闰年的函数,如果是闰年返回True,否则返回False。利用该函数判断2013、2018、2020哪个是闰年。函数的使用【例5-1】定义一个判断某一年是否是闰年的函数,如果是闰年返回True,否则返回False。利用该函数判断2013、2018、2020哪个是闰年。函数的使用【例5-2】根据海伦公式定义计算三角形面积的函数TriangleArea,并利用该函数分别计算(3,5,6)、(8,5,7)、(9,12,8) 这3个三角形的面积。函数的使用【例5-2】根据海伦公式定义计算三角形面积的函数TriangleArea,并利用该函数分别计算(3,5,6)、(8,5,7)、(9,12,8) 这3个三角形的面积。5.1.3lambda表达式p 如果一个函数相对比较简单,可在一行内定义完,此时可以采用lambda表达式来定义该函数(称为匿名函数)。其格式如下:5.1.3lambda表达式函数返回值p 函数返回值由return语句实现,可返回多种类型的值,如基本数据类型、高级数据类型,甚至是一个lambda表达式函数返回值【例5-3】定义一个函数stat(op),根据参数op的值分别求两个数最大值(op为1时)、最小值(op为2时)、平均值(op为3时)和求和(op为4时)。函数返回值【例5-3】定义一个函数stat(op),根据参数op的值分别求两个数最大值(op为1时)、最小值(op为2时)、平均值(op为3时)和求和(op为4时)。函数返回值【例5-3】定义一个函数stat(op),根据参数op的值分别求两个数最大值(op为1时)、最小值(op为2时)、平均值(op为3时)和求和(op为4时)。函数返回值【例5-4】编写函数分别计算字符串中大写、小写字母个数。函数返回值【例5-4】编写函数分别计算字符串中大写、小写字母个数。5.2函数参数p 函数参数类似于我们在表达式中使用的变量,当同一变量取不同值时相同的表达式将得到不同的运算结果,例如y=x+2,x取不同的值,y必将有不同结果。p 要区分两个概念:函数的参数以及参数取的值,前者称为形参、后者称为实参形参与实参p 形参全称为形式参数,是用def定义函数时在括号里定义的变量。实参全称为实际参数,是在调用函数时提供的具体值或者变量。函数参数分类p 位置参数与关键字参数l 在调用时实参按形参定义先后顺序赋值,该方式即为位置参数,是所有函数匹配参数的默认方式。如果调用时按形参名称进行赋值,该方式即为关键字参数。函数参数分类p 默认值参数l 在定义函数参数时同时给参数赋予一个值,在调用时可以给该参数赋值、也可以不给该参数赋值。如果调用时不给该参数赋值,则该参数自动取定义时的值。函数参数分类【例5-5】编写添加学生的函数addStudent,该函数带三个参数,分别为学生姓名、年龄和性别,其中性别默认值为男。函数参数分类【例5-5】编写添加学生的函数addStudent,该函数带三个参数,分别为学生姓名、年龄和性别,其中性别默认值为男。函数参数分类p 可变参数l 定义函数时无法确定调用时参数的个数函数参数分类【例5-6】编写计算平均分的函数Score_Avg,该函数可对多门课程统计平均分。函数参数分类【例5-6】编写计算平均分的函数Score_Avg,该函数可对多门课程统计平均分。函数参数分类【例5-7】编写计算平均分的函数Score_Avg,该函数可对多门课程统计平均分,采用字典方式传递可变参数。函数参数分类【例5-7】编写计算平均分的函数Score_Avg,该函数可对多门课程统计平均分,采用字典方式传递可变参数。变量的作用域p 作用域即作用范围、有效范围,变量作用域即变量的有效范围。同一变量,如果定义在函数内部,其作用范围只限于该函数内部,称为局部变量;如果定义在函数外部,其作用范围超出了任何一个函数,作用于整个程序,称为全局变量。变量的作用域p 局部变量l 在函数内部定义的变量,其作用范围只限于该函数变量的作用域p 全局变量l 定义在函数外部,作用域是整个程序变量的作用域p Global声明全局变量l 把局部变量声明为全局变量变量的作用域【例5-11】变量的定义与引用变量的作用域【例5-11】变量的定义与引用变量的作用域【例5-11】变量的定义与引用变量的作用域【例5-12】以下为各同学的科目成绩,请计算各同学的总分和平均分,并按平均分从高到低输出各同学的成绩。变量的作用域【例5-12】以下为各同学的科目成绩,请计算各同学的总分和平均分,并按平均分从高到低输出各同学的成绩。变量的作用域【例5-12】以下为各同学的科目成绩,请计算各同学的总分和平均分,并按平均分从高到低输出各同学的成绩。变量的作用域【例5-12】以下为各同学的科目成绩,请计算各同学的总分和平均分,并按平均分从高到低输出各同学的成绩。5.3函数的递归p 函数在执行过程中调用自己本身,称为递归调用递归调用【例5-13】求1到n的平方和递归调用【例5-13】求1到n的平方和递归调用【例5-13】求1到n的平方和递归调用【例5-13】求1到n的平方和递归调用【例5-14】从键盘输入一个整数,求该数的阶乘。递归调用【例5-14】从键盘输入一个整数,求该数的阶乘。递归调用【例5-15】求n=20时Fibonacci数列的值。递归调用【例5-15】求n=20时Fibonacci数列的值。递归调用【例 5-16】汉诺塔(Hanoi)问题源自于古印度,是递归算法设计的经典,其主要内容是:有A、B、C三根宝针(见图5-1),A针上有n个从大到小叠放的金片,要求将所有金片从A针移动到C针上。移动过程中可借助任何一根针,但每次只能移动一个金片,且每根针必须满足大片在下、小片在上的条件。递归调用递归调用递归过程分析 递归调用n!的执行过程5.4内置函数p Python函数分为内置函数和第三方函数。内置函数又称系统函数、标准函数,或内建函数,是Python自身提供的函数,不依赖于任何第三方库。第三方函数是由第三方按Python函数规范开发的库函数,需导入第三方库才能使用。数学运算及类型转换函数数学运算及类型转换函数反射函数反射函数迭代器函数迭代器函数迭代器函数【例 5-17】利用filter函数筛选100以内的偶数。迭代器函数【例 5-18】已知全班同学的信息如下,请筛选出全部男同学。迭代器函数【例 5-19】以下为全班同学某门课程的成绩,有些同学成绩为0分,请把0分的成绩替换成班平均分。迭代器函数【例 5-19】以下为全班同学某门课程的成绩,有些同学成绩为0分,请把0分的成绩替换成班平均分。迭代器函数【例 5-20】以下为全班同学2门课程的成绩,有些同学成绩为0分,请把0分的成绩替换成该课程的班平均分,并计算各同学课程平均分。迭代器函数【例 5-20】以下为全班同学2门课程的成绩,有些同学成绩为0分,请把0分的成绩替换成该课程的班平均分,并计算各同学课程平均分。迭代器函数【例 5-20】以下为全班同学2门课程的成绩,有些同学成绩为0分,请把0分的成绩替换成该课程的班平均分,并计算各同学课程平均分。迭代器函数【例 5-21】已知学生信息存放在3个列表中,请输出每个同学的完整信息。5.4.4 I/O函数5.5 模块导入与定义p 模块(Module)是Python代码存放的文件,以py为扩展名。所有的函数、类、变量等均定义在模块文件中,模块有时又称为库,但通常一个库会有多个模块文件组成。如果要使用模块中的函数,需先导入。5.5.1 导入模块p 不管标准模块还是第三方模块,使用前都必须用import语句导入。5.5.2 自定义模块p 在Python中,每个Python文件就是一个模块,文件名即为模块名。5.5.3 自定义包p 如果一个文件夹下存在特殊文件_init_.py,则该文件夹便是一个包。5.6 标准模块p time模块5.6 标准模块p time模块5.6 标准模块p time模块5.6 标准模块p calendar模块5.6 标准模块p calendar模块5.6 标准模块p datetime模块l datetime模块支持日期和时间运算的同时,还能更有效地处理和格式化时间输出,同时该模块还支持时区处理。5.6 标准模块p random模块5.6 标准模块p math与cmath模块5.6 标准模块p math与cmath模块5.6 标准模块p math与cmath模块5.6 标准模块p math与cmath模块5.7 第三方模块p 安装第三方模块5.7 第三方模块p 卸装第三方模块中文分词模块(jieba)p 安装jieba库中文分词模块(jieba)p 分词中文分词模块(jieba)p 分词中文分词模块(jieba)p 词性标注中文分词模块(jieba)p 关键字提取中文分词模块(jieba)p 自定义词典5.7.3 词频统计模块(wordcloud)p 安装wordcloud库5.7.3 词频统计模块(wordcloud)p 统计词频5.7.3 词频统计模块(wordcloud)p 统计词频谢 谢 观 看