《Python机器学习》教学课件—04函数

上传人:sat****105 文档编号:293649739 上传时间:2022-05-17 格式:PPTX 页数:39 大小:294.68KB
返回 下载 相关 举报
《Python机器学习》教学课件—04函数_第1页
第1页 / 共39页
《Python机器学习》教学课件—04函数_第2页
第2页 / 共39页
《Python机器学习》教学课件—04函数_第3页
第3页 / 共39页
《Python机器学习》教学课件—04函数_第4页
第4页 / 共39页
《Python机器学习》教学课件—04函数_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《《Python机器学习》教学课件—04函数》由会员分享,可在线阅读,更多相关《《Python机器学习》教学课件—04函数(39页珍藏版)》请在金锄头文库上搜索。

1、Machine Learning with Python4.1目 录4.24.3函数的定义与调用函数参数与返回值两类特殊函数常用函数4.54.44.6模块和包案例拼单词游戏4.7本章小结函数的定义与调用本节介绍函数的定义与函数的调用4.13 4.1.1 函数的定义函数是模块化程序设计的基本构成单位,在Python语言中使用def语句定义函数,具体语法格式如下: def 函数名(参数列表): 函数体【例4-1】定义一个输出hello python!的无返回值的函数。 def say_hello(): print(hello python! )4 4.1.1 函数的定义函数定义语法说明如下:使用关

2、键字def声明一个函数,函数由函数名和函数体两部分组成。函数名应为有效的标识符,即由小写字母组成。为了方便阅读,也可以由小写字母与下划线组成。函数名中的形参列表用圆括号括起来,参数间用逗号隔开,参数可以为空,表示中括号中的参数可选。形参在函数被调用时用来接收主调程序传递过来的函数所需的参数的值,即实际参数,简称实参。定义的函数名以“:”结尾,然后另起一行开始函数体。def语句是复合语句,所以函数体需采用缩进书写规则。函数可以使用return返回值。如果函数体中包含return语句,则返回值,否则不返回值,即返回值为空(None)。def是执行语句,Python解释执行def语句时会创建一个函数

3、对象,并绑定到函数名变量。5 4.1.2 函数的调用Python用函数名进行函数调用,在进行函数调用时,根据需要可以指定实际传入的参数值,即实参。函数调用的语法格式如下: 函数名(实参列表)函数调用语法说明如下:函数名是当前作用域中可用的函数对象,即调用函数之前程序必须先执行def语句,创建函数对象。调用函数时实参列表必须与函数定义的形参列表一一对应。函数调用是表达式语句,如果函数有返回值可以在表达式语句中直接使用,如果函数没有返回值,则可以单独作为表达式语句使用。函数参数与返回值本节介绍函数参数与函数返回值4.27 4.2.1 函数参数1)位置参数。调用函数时根据函数定义的位置参数来传递参数

4、。2)关键字参数。通过“键-值”形式加以指定,可以让函数更加清晰,容易使用,同时也清除了参数的顺序要求。3)默认参数。定义函数时为参数提供的默认值,调用函数时,默认参数的值可传可不传。注意:所有的位置参数必须出现在默认参数前,包括函数定义和调用。4)可变参数。定义函数时,有时候不确定调用时会传递多少个参数。此时,可用定义任意位置参数或者关键字参数的方法来进行参数传递,会显得非常方便。 8 4.2.2 函数返回值函数可以处理一些数据,并返回一个或一组值。函数返回的值称为返回值。函数也可以没有返回值,没有返回值的函数类似于其他编程语言中的过程。【例4-2】编写程序,调用函数的返回值分别计算1天的单

5、日利息和10天利息收入。 def cal_interest(day,money=10000,interest_rate= 0.05): income = 0 income = money*interest_rate*day/365 return income x=cal_interest(1) # 存储调用函数的返回值,即1天的单日利息 y=10*x # 利用存储对象计算10天的利息 print(本金一万元1天的利息收入: ,x) print(本金一万元10天的利息收入: ,y)两类特殊函数本节介绍匿名函数和递归函数4.310 4.3.1 匿名函数Python 允许使用lambda语句创建匿名

6、函数,lambda语句中,冒号前是函数参数,若有多个函数须使用逗号分隔;冒号后是返回值。lambda为定义匿名函数时的关键字,arguments为传入函数的参数,expression为返回值。使用lambda语句定义匿名函数,应该注意如下3点:lambda 定义的是单行函数,如果需要复杂的函数,应使用def 语句。lambda 语句可以包含多个参数。lambda 语句只能有一个表达式,不用写return,返回值就是该表达式的结果。【例4-3】编写程序,使用lambda 语句创建匿名函数。 f = lambda a,b,c:a+b+c # 使用lambda关键字定义匿名函数 print (f(1

7、,2,3) 程序运行结果如下: 611 4.3.2 递归函数 递归基本步骤1)初始化算法。递归程序通常需要一个开始时使用的种子值(seed value)。要完成此任务,可以向函数传递参数,或者提供一个入口函数,这个函数是非递归的,但可以为递归计算设置种子值。2)检查要处理的当前值是否已经与基线条件相匹配(base case)。如果匹配,则进行处理并返回值。3)使用更小的或更简单的子问题(或多个子问题)来重新定义答案。4)对子问题运行算法。5)将结果合并入答案的表达式。6)返回结果。 主要应用范围1)数据的定义是按递归定义的。例如Fibonacci数列。2)问题解法按递归算法实现。例如回溯算法。

8、3)数据的结构形式是按递归定义的。例如树的遍历,图的搜索等算法。12 4.3.2 递归函数递归优缺点优点递归使代码看起来更加整洁、优雅。可以用递归将复杂任务分解成更简单的子问题。使用递归比使用一些嵌套迭代更容易。缺点递归的逻辑很难调试、跟进。递归算法解题的运行效率较低。在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。在使用递归时,需要注意以下几点:递归就是在过程或函数里调用自身。必须有一个明确的递归结束条件,即递归出口。常用函数本节介绍字符串处理函数和高级函数4.414 4.4.1 字符串处理函数查找函数find() find()函数用来查找第一

9、个匹配到的子字符串的起始位置。具体语法格式为: find(sub,start,end)其中:sub:要查找位置的子字符串。start:开始查找的位置,如果不设置则默认从第一个字符开始查找。end:结束查找的位置,如果不设置则默认可以查找到最后。如果找到则返回位置,找不到返回-1。15 4.4.1 字符串处理函数查找子串位置函数index()函数index()用来查找子字符串在大字符串中的位置,如果找到返回起始位置,找不到抛出异常。具体语法格式为: index(sub,start,end)其中:sub:要查找位置的子字符串。start:开始查找的位置,如果不设置则默认从第一个字符开始查找。end

10、:结束查找的位置,如果不设置则默认可以查找到最后。如果找到则返回起始位置,找不到抛出异常。16 4.4.1 字符串处理函数统计函数count()count() 函数用来统计某个字符串在大字符串中出现的次数。具体语法格式为: count(x,start,end)其中:x:要查找次数的字符。start:开始查找的位置,如果不设置则默认从第一个字符开始查找。end:结束查找的位置,如果不设置则默认可以查找到最后。转换大小写函数upper(),lower()upper()把字符串全部转化为大写,并把转化之后的字符串返回,lower()把字符串全部转化为小写,并把转化之后的字符串返回。17 4.4.1

11、字符串处理函数strip()函数strip(chars)用来去除字符串首尾两端的指定字符,当不指定chars时默认去除字符串首尾两端的空格。替换函数replace()replace()函数可以将字符串中的字符进行替换,具体语法格式为: replace(old,new,count)其中:old:要替换的字符串。new:替换之后的字符串。count:替换的次数。如不设置将用new替换所有的old。18 4.4.1 字符串处理函数分割函数split()split()函数通过指定分隔符对字符串进行切片,具体语法格式为: split(str,num) 其中:str:分隔符。不设置时默认为所有的空字符,包

12、括空格、换行(n)、制表符(t)等。start:开始查找的位置,如果不设置则默认从第一个字符开始查找。num:分割次数。不设置时默认为-1,即分隔所有。如果设置num指定值,则分割为 num+1个子字符串。合并函数join()join()方法用于将序列中的元素以指定的字符串连接生成一个新的字符串。具体语法格式为: join(sequence)其中参数sequence为要连接的元素序列。返回值为通过指定字符连接序列中元素后生成的新字符串。19 4.4.1 字符串处理函数startwith()与endwith()startswith()函数用来判断某个字符串是否以某个字符串开头,如果以某个字符串开

13、头, 返回True,否则返回False。endswith()函数用来判断某个字符串是否以某个字符串结束,如果以某个字符串结尾,返回True否则返回False。【例4-4】编写程序,使用startswith()函数和endswith()函数判断字符串是否以指定字符开始和以指定字符结束。 s1 =123456789abcdef10 print(s1.startswith(1) print(s1.endswith(f) print(s1.endswith(10) 程序运行结果如下: True False True20 4.4.2 高级函数map函数map函数是Python内置的高阶函数,它的基本样式

14、为map(func,list)。其中,func是一个函数,list是一个序列对象。在执行的时候,序列对象中的每个元素,按照从左到右的顺序通过把函数func依次作用在list的每个元素上,得到一个新的list并返回。filter函数filter函数是Python内置的另一个常用的高阶函数。它的基本样式为filter(func,list)。filter函数接收一个函数func和一个列表list,函数func的作用是对每个元素进行判断,通过返回True或False来过滤掉不符合条件的元素,符合条件的元素组成的新list。zip函数zip函数也是Python内置的另一个常用的高阶函数。它的基本样式为z

15、ip(iterable, .)。zip函数接受任意多个可迭代对象作为参数,将对象中对应的元素打包成一个元组,然后返回一个可迭代的zip对象。模块和包本节介绍模块与包的导入、常用模块4.522 4.5.1 模块与包的导入 模块的导入 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块导入的基本形式如下: import 模块名# 导入模块 import 模块1,模块2,.,模块n # 导入多个模块 import 模块名 as 模块别名 # 导入模块并使用别名包的导入Python模块是.py文件,而包是文件夹。只要文件夹中包含一个特殊的文件:_init_.py,则Python解释器将

16、该文件夹作为包,其中的模块文件则属于包中的模块。包可以包含子包,没有层次限制。特殊文件_init_.py可以为空也可以包含属于包的代码,当导入包或该包中的模块时执行_init_.py。包的导入与模块的导入相似,使用import语句导入包中模块时,需要指定对应的包名。其基本格式如下: import 包名1.包名2. .模块名 # 导入包中模块23 4.5.2 常用模块 math模块 math模块是一个封装了多个数学计算函数和变量的模块。表4-1 模块math中一些常见的函数和变量函数/变量描述ceil(数值)向上取整操作。返回值:整型floor(数值)向下取整。返回值:整型round(数值,n)四舍五入操作。返回值:若无参数n则返回整数,否则返回值带n位小数pow(底数,幂)计算一个数的N次方。返回值:浮点类型sqrt(数值)开平方。返回值:浮点数fabs(数值)获取一个数的绝对值操作。返回值:浮点数abs(数值)获取一个数的绝对值操作。返回值:返回值类型由元数据类型决定modf(数值)将一个浮点数拆成小数和整数部分组成的元组。返回值:元组fsum(序列)将一个序列的数值进行相加求和。返

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号