07模块和包(函数)

一.函数的定义和调用

1.定义

函数:我们可以将在不同的地方要调用的相同的功能的代码进行分装,打包,定义一个函数

进行封装。

例如:

在这里插入图片描述

假设我们想在登录和注册时验证本人的手机号码是否正确时,我们可以将验证手机号码的过

程封装进函数里,之后进行使用。首先,我们定义一个函数,def 是关键字,number 是函数

名,括号内是参数。(变量可以自己命名)

在这里插入图片描述

2.调用

定义成函数之后,再调用函数来实现代码的复用,如上我们定义的函数是number(),所有

我们就在需要函数的加上number()。
在这里插入图片描述

print 是不能把打印的内容赋值给变量

return 返回的值是可以把值赋值给变量(函数外部是无法访问函数内部的,如果我们想要访问可以加上return 和返回值。return不仅有代出特定值的作用还有结束的作用)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二.函数的参数

Python中函数主要有这三种参数:

必备参数、默认参数 和 不定长参数

其中不定长参数有:元组和字典两种类型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

字典传入是,必须是键值对的形式,且只能最后传入,定义时也只能放在最后面

-> None: 这个语法是指这个函数的返回值是什么类型,在调用help查看时可以看到,通常

在看python源码时会见到

拆包: 类似于我们之前讲的元组拆包,在传入时也可以通过解包来传入不定长参数
在这里插入图片描述
在这里插入图片描述

三.函数作用域

函数不会改变传入的不可变对象的值

函数内部定义的变量在函数外部不可以使用,是局部变量。
在这里插入图片描述
在这里插入图片描述

如果想要在函数内部改变外面不可变对象变量的值,则需要在函数内部使用 global 关键字

global 是全局变量声明,声明之后可以在全局使用,这里的全局指的是当前py文件中。如果

是嵌套的函数,则不能使用global,需要使用nonlocal 关键字

注意:函数内外名字要一致,否则就是一个新变量
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
函数作用域-闭包

把刚才的函数稍微改一下,改f4的返回值为函数 func5 ,调用f4之后的变量值,可以再次调

把内部函数(func5)和外部变量(var1)都称为闭包

作用:可以在外部修改函数内部的变量值,是函数内部与外界沟通的桥梁

在这里插入图片描述
在这里插入图片描述
比如游戏中的血量,是不能任何地方都可以随便修改的,否则随便一个外挂就无敌了

因此需要把血量保护起来,不能随便修改,要修改只能通过调用指定的函数才行,这样就在

一定程度上保护了血量

在这里插入图片描述
四.递归和匿名函数

递归函数:

在这里插入图片描述

递归函数简单来说就是函数内部调用自己,和while循环类似,也需要一个结束条件,否则超

出递归深度就会报错
在这里插入图片描述

匿名函数:

匿名函数就是没有函数名的函数,主要用来定义那种不是特别复杂的函数,常用用于函数的

参数中
在这里插入图片描述
简写:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南风和云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值