Python函数定义与使用的示例分析


这篇文章主要介绍Python函数定义与使用的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是函数? — > 函数是具有某种特定功能的代码块,可以重复使用(在前面数据类型相关章节,其实已经出现了很多 Python 内置函数了)。它使得我们的程序更加模块化,不需要编写大量重复的代码。函数可以提前保存起来,并给它起一个独一无二的名字,只要知道它的名字就能使用这段代码。函数还可以接收数据,并根据数据的不同做出不同的操作,最后再把处理结果反馈给我们。由此我们得知:将一件事情的步骤封装在一起并得到最终结果的步骤,就是函数的过程。函数名代表了该函数要做的事情。函数体是实现函数功能的流程。在实际工作中,我们把实现一个函数也叫做 “实现一个方法或者实现一个功能”函数可以帮助我们重复使用功能,通过函数名我们也可以知道函数的作用。内置函数:在前面数据类型相关章节,其实已经出现了很多 Python 内置函数了。如 input、id、type、max、min、int、str等 ,这些都是 Python 的内置函数。也就是 Python 已经为我们定义好的函数,我们直接拿来使用即可。自定义函数:由于每个业务的不同,需求也各不相同。Python无法提供给我们所有我们想要的功能,这时候我们就需要去开发,实现我们自己想要的功能。这部分函数,我们叫它 自定义函数 。无论是内置函数,还是自定义函数,他们的书写方法都是一样的。def 关键字的功能:实现 Python 函数的创建。def 关键字定义函数:定义函数,也就是创建一个函数,可以理解为创建一个具有某些用途的工具。定义函数需要用 def 关键字实现,具体的语法格式如下:注意,在创建函数时,即使函数不需要参数,也必须保留一对空的 “()” ,否则 Python 解释器将提示“invaild syntax”错误。另外,如果想定义一个没有任何功能的空函数,可以使用 pass 语句作为占位符。示例如下:return 的意思就是返回的意思,它是将函数的结果返回的关键字,所以函数的返回值也是通过 return 来实现的。需要注意的是,return 只能在函数体内使用; return 支持返回所有的数据类型,当一个函数返回之后,我们可以給这个返回值赋予一个新的变量来使用。由此我们总结出:return 是将函数结果返回的关键字return 只能在函数体内使用return 支持返回所有的数据类型有返回值的函数,可以直接赋值给一个变量return 的用法,示例如下:需要注意的是,return 语句在同一函数中可以出现多次,但只要有一个得到执行,就会直接结束函数的执行。现在我们利用 return 关键字 ,尝试自定义一个 capitalize 函数。示例如下:再一次注意到,只要有一个得到执行,就会直接结束函数的执行。print 只是单纯的将对象打印输出,并不支持赋值语句。return 是对函数执行结果的返回,且支持赋值语句;但是我们可以将含有 renturn 值的函数放在 print 里进行打印。必传参数:平时最常用的,必传确定数量的参数默认参数:在调用函数时可以传也可以不传,如果不传将使用默认值不确定参数:可变长度参数(也叫可变参数)关键字参数:长度可变,但是需要以 key-value 形式传参什么是必传参数? —> 在定义函数的时候,没有默认值且必须在函数执行的时候传递进去的参数;且顺序与参数顺序相同,这就是必传参数。函数中定义的参数没有默认值,在调用函数的时候,如果不传入参数,则会报错。在定义函数的时候,参数后边没有等号与默认值。错误的函数传参方式:def add(a=1, b=1)错误示例如下:正确的示例如下:传递的参数个数必须等于参数列表的数量根据函数定义的参数位置来传递参数,要求传递的参数与函数定义的参数两者一一对应如果 “传递的参数个数” 不等于 “函数定义的参数个数”,运行时会报错错误传参数量示例如下:在定义函数的时候,定义的参数含有默认值,通过赋值语句给参数一个默认的值。使用默认参数,可以简化函数的调用,尤其是在函数需要被频繁调用的情况下如果默认参数在调用函数的时候被给予了新的值,函数将优先使用新传入的值进行工作示例如下:这种参数没有固定的参数名和数量(不知道要传的参数名具体是什么)不确定参数格式如下:*args 代表:将无参数的值合并成元组**kwargs 代表:将有参数与默认值的赋值语句合并成字典从定义与概念上似乎难以理解,现在我们通过示例来看一下:def add(a, b=1, *args, **kwargs)参数的定义从左到右依次是 a – 必传参数 、b – 默认参数 、可变的 *args 参数 、可变的 **kwargs 参数函数的参数传递非常有灵活性必传参数与默认参数的传参也非常具有多样化示例如下:注意:如果传参的顺序发生变化,一定要使用赋值语句进行传参。需求:定义一个 login 函数,向函数内传入形参 username,password,当 username 值为 admin 且password值为字符串 123456 时,返回“登录成功”;否则返回“请重新登录”前文我们学习了函数的定义方法与使用方法,在定义参数的时候我们并不知道参数对应的数据类型是什么。都是通过函数体内根据业务调用场景去判断的,如果传入的类型与也无偿性不符,就会产生报错。现在我们学习一种方法,可以在定义函数的时候,将参数类型与参数一同定义,方便我们知道每一个参数需要传入的数据类型。我们来看一个例子:必传参数:参数名 + 冒号 + 数据类型函数 ,为声明必传参数的数据类型默认参数:参数名 + 冒号 + 数据类型函数 + 等号 + 默认值,为声明默认参数的数据类型需要注意的是,对函数的定义数据类型在 python 3.7 之后的版本才有这个功能虽然我们给函数参数定义了数据类型,但是在函数执行的时候仍然不会对参数类型进行校验,依然是通过函数体内根据业务调用场景去判断的。这个定义方法只是单纯的肉眼上的查看。示例如下:我们发现执行的函数并没有报错,add(‘Hello’, ‘World’) 也通过累加的方式拼接在了一起所以说,虽然我们定义了 int 类型,但是并没有做校验,只是单纯的通过肉眼告知我们参数是 int 类型,后续我们进入python高级进阶阶段可以自己编写代码进行校验。全局变量:在当前 py 文件都生效的变量在 python 脚本最上层代码块的变量全局变量可以在函数内被读取使用局部变量:在函数内部,类内部,lamda.的变量,它的作用域仅在函数、类、lamda 里面在函数体内定义的变量局部变量无法在自身函数以外使用示例如下:示例如下:全局变量 在 函数体内真的就不能被修改么?当然是可以的,借助关键字 global 就可以实现。global 关键字的功能:将全局变量可以在函数体内进行修改global 关键字的用法:示例如下注意:日常开发工作中,不建议使用 global 对 全局变量进行修改再来看一个案例:前面我们是通过 global 关键字修改了函数体内的变量的值,为什么在这里没有使用 global 关键字,在函数体内修改了 test_dict 的值却影响到了函数体外的变量值呢?其实,通过 global 关键字修改的全局变量仅支持数字、字符串、空类型、布尔类型,如果在局部变量想要使用全局变量的字典、列表类型,是不需要通过 global 关键字指引的。什么是递归函数? —> 通俗的来说,一个函数不停的将自己反复执行,这就是递归函数。(通常是由于函数对自己的执行结果不满意,才需要这样反复的执行。)示例如下:首先我们要知道 递归函数 会造成的影响,递归函数 是不停的重复调用自身函数行程一个无限循环,就会造成内存溢出的情况,我们的电脑可能就要死机了。递归函数虽然方便了我们用一段短小精悍的代码便描述了一个复杂的算法(处理过程),但一定要谨慎使用。(使用循环来处理,不失为一个稳妥的方案。)所以我们要尽量的避免使用 递归函数 ,如果真的要使用递归,一定要给予退出递归的方案。lambda 函数的功能:定义一个轻量化的函数;所谓轻量化就是即用即删除,很适免费云主机域名合需要完成一项功能,但是此功能只在此一处使用。也就是说不会重复使用的函数,并且业务简单的场景,我们就可以通过 lambda 来定义函数lambda 函数的用法示例如下再来看一个示例,加深对 lambda 匿名函数的理解

相关推荐: Keras高层接口应用的示例分析

这篇文章主要介绍Keras高层接口应用的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!keras.metrics可以用来对数据进行记录跟踪,当我们的数据量太大,又想在中间就看看训练的情况的时候,可以使用此接口。步骤如下:通过me…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 10/13 16:31
Next 10/13 17:06

相关推荐