Python基础入门篇【22】--python中的函数:初时函数及函数的参数

前言
作者简介:短尾巴小鳄鱼 ,一位不放弃自己的上进卷妹
💬 如果文章知识点有错误的地方,请留言指正~和大家一起学习,一起进步
💬 人生格言:昨日种种,皆成今我。今日种种,方成新我。切莫踌躇,莫停留,莫沉溺💬
如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦

python中的函数

初时函数

函数的定义

函数:将一个事情的步骤封装在一起并得到最终的结果,我们也把实现一个函数的功能称作实现一个方法

函数名代表了整个函数要做的事情

函数体是实现函数功能的流程

在python中,我们可以把我们的功能都封装到函数中以便重复使用。

函数的分类

  • 内置函数

    python中已经封装好可以直接使用的函数

    如:print、id、int、str、max、min、range

  • 自定义函数

创建函数–def

def是定义函数的关键字

def name(args...):
    todo something..
    返回值

函数结果的返回–return

return是将函数结果返回的关键字

return只能在函数体内使用

return支持返回所有的python类型,返回的数据可以直接赋值给一个变量

函数里return后面的代码不会被执行,效果相当于break

def add(a,b):
    c = a + b
    return c

result = add(a=1, b=1) # result来接收函数的返回值
print result

例子:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ot26o1o0-1658726902385)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220722143524350.png)]

函数的参数

什么是函数的参数?

定义函数的时候,在括号内以变量的形式定义函数的参数,方便函数内部使用这些参数。

必传参数

在定义函数的时候,没有默认值且必须在函数执行的时候传递进去的参数,且顺序与参数顺序相同,就是必传参数

必传参数不传会报错

默认参数

在定义函数的时候,定义的参数含有默认值。

如果默认参数在调用函数的时候给予了新的值,函数将优先使用后传入的值

def add(a, b=1, c)   # 其中a,c是必传参数,b是默认参数

例子:

在这里插入图片描述

不确定参数-可变参数

没有固定的参数名和数量(不知道要传的参数名具体是什么)

def add(*args,**kwargs): 
    ...
    
add(1,2,3,4,name='xiaoming',age=20)
# *:将无参数名的值合并成元组
# **:将有参数与默认值的参数合并成字典

上面调用add函数的例子中,参数1,2,3,4将被*args合并成一个元组,而name='xiaoming,age=20'将被**kwargs合并成一个字典:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lmJKCH42-1658726902388)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220725093618779.png)]

思考:如果想要往可变参数中传入元组或字典呢,像上面那样直接用逗号隔开的方式还可以正确传入吗?

不可以,运行结果如下,会将两个参数都传入第一个可变参数,且合并成了元组:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hW8dAcCd-1658726902389)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220725124935650.png)]

此时,我们只需要在传入参数前加入*就可以解决这个问题:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-531jzhEB-1658726902390)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220725125052252.png)]

参数规则

参数的定义从左到右依次是必传参数,默认参数,可变元组参数,可变字典参数。顺序是不可变的

我们传入参数时也要按照这个顺序。但是还是推荐用赋值语句的方式传入,方便我们清楚的看到哪个值对应的哪个参数。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tnaw7GFr-1658726902391)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220725125258040.png)]

特例,当我们使用赋值的方式传参的时候:

  1. 如果只有必传参数和默认参数,顺序可以变化。
  2. 如果有必传参数和可变参数,需要将可变参数放在第一位。否则会报错:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rdbkXhtH-1658726902391)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220725130012645.png)]

修改后如下:这种方式虽然可以避免报错,但并不推荐,我们还是优先按照必传参数->默认参数->可变元组参数->可变字典参数的顺序来定义参数。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w9gQMIqz-1658726902392)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220725130433635.png)]

函数参数的数据类型

参数数据类型的定义

def person(name:str,age:int=30)
	print(name,age)

注意:

  1. 只有在python3.7之后才支持对函数数据类型的定义
  2. 函数不会对参数类型进行验证

例子:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0TXtKFA0-1658726902392)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220725131803071.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值