python函数的参数可以接收哪些类型的数据_第51p,万能参数与返回值,Python中函数的返回值...

原标题:第51p,万能参数与返回值,Python中函数的返回值

大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第51篇文章,第三阶段的课程:Python进阶知识:详细讲解Python中的函数(四)====>函数的参数与返回值(下篇)。

66ddc0a504864c3984f103af2d2adf35.jpeg

函数是非常重要的内容,在这里,我会用10篇左右的文章详细讲解Python中函数定义与使用的规则。

阅读提醒:建议小白先看一遍:【计算机基础知识】和【Python基础知识】课程,否则你不一定听得懂!

我们接着上一篇文章讲函数传参与函数的返回值。

一、Python中函数的传参规则

1、一般传参规则

有几个形参就传入几个实参,按照定义阶段为准;

如果所有类型的参数都有,则按照以下规则进行传参:

函数名(位置参数,关键字参数/默认参数,*args,**kwargs)

598db4a90fe74ad9851fa3722970f3e3.png

2、不定长参数的传参

如果在函数定义时,定义了*args和**kwargs这些不定长形参,在进行传参时,遇到列表[]、字典{}这类数据时,会自动将相相应数值传入到*args与**kwargs这两个形参中;

这是Python内置的强制规则。

3、解压传参

解压传参指的是,定义参数时并没有定义*args和**kwargs这两种不定长参数,但却传入了列表或元组或字典这类数据;

有人会觉得,没有定义不定长参数,怎么传列表、字典?这里用到了解压传参的功能。

a. 列表的解压传参:

定义函数:函数名(位置参数1,位置参数2)

实例化函数:

X = [1,2];

函数名(*x)

b. 字典的解压传参:

定义函数时:函数名(参数1,参数2)

实际传参时:函数名(**{参数1:11,参数2:22})

47ce58f294754aa4a0858ad0406e61fb.png

c. 还有一种情况是,定义函数时,是这样的:

函数名(位置参数1,位置参数2,*args)

实际传参时,是这样的:

X = [1,2,3,4,5,6]

函数名(*x)

0833422555534a5b8d06f78b85ab5e21.png

解压传参的底层逻辑是这样的:【重要】

1、传参时遇到一个星或两个星(*或**)时,会相当于执行一次for循环;

2、将传入的列表或字典进行for循环取值;

3、再将列表或字典中取出来的值,按照位置参数传参的方式,从左到右依次传;传参过程中也会遵循一般传参规则 ,即有几个形参,就传几个实参。

4、如果传入的是字典,则用两个星传参的方式进行传参,最后会得到的时字典key对应的value。

例:def fun(x,y,z)

实参:fun(*[11,12,13])

这里会严格按照位置参数的数量进行传参,返回的结果是,x=11,y=12,z=13。

4、万能传参的方法

万能传参是指,不管你传入的是1个或1万个参数,传入的参数是列表、元组、字典,都可被函数接收;这里利用的是不定长参数的特点;具体使用方式如下:

定义函数时:函数名(*argw,**kwargs)

这种传参方式,也是我们经常使用的传参方式。

注:*args 返回的是元组,**kwargs返回的是字典。

b98e923a6fee4b27a9643c724712c0a2.png

5、设置传参时的提示

我们在使用Python内置的函数时,会看到有相应的英文提示,告诉我们这个参数应该传入什么样的数据类型;我们自己在定义函数时也可以设置提示,使用语法如下:

函数名(参数1:“这里传入数字)

例如:def fun(x:”please input int”):

当函数被使用时,会显示相应的提示。

ac2cc4c30d384ce7991ce2cfc48f5c87.png

二、Python中函数的3种返回值

函数中,只要执行了一次return语句,无论后面有多少语句都不会再往下执行;return是函数结束的标志;Python中的函数返回值分为3种:

1、没有return,默认返回None;

2、返回单个值,语法:return 值;

3、返回多个值,用逗号分隔开,会被return返回成元组;

如:return x,y;会返回成(x,y);

返回元组的主要原因是利用元组的不可变特性,这样函数的返回值就不会有被修改的可能。

4、规定函数返回值数据类型

我们可以在定义函数时,规定函数的返回值数据类型,具体方法如下:

函数名(参数:)->:int

例 : def fun(x): ->:int

这里给使用者提示了fun函数的返回值为int(整数);不过,我们一般很少使用这种方式定义函数。

d85809b6d0b248f0ae2445ceddb8c695.png

补充两点前面漏写的:

a. Python中的函数名的命名规则和变量名的命名规则一样;函数名的命名风格:纯小写字母;

b. 函数的功能注释,一般都写在函数名下面用3引号注释,一般看需求确定是否要详细写注释。

38c8f87fc3754b65a7e116da78c2e267.jpeg

以上是本期内容,如果有表达不对的内容,欢迎您的留言、斧正,我们一起天天向上。

感谢您的阅读,您的三连【关注、点赞、收藏】就是对我最大的支持,谢谢!

本文由杨数Tos原创,欢迎关注,带你一起长知识。返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值