17.python函数参数、递归

定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了, 函数内部的复杂逻辑被封装起来,调用者无需了解。 Python 的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码。

1 位置参数

函数调用时,实参默认按位置顺序传递,需要个数和形 参匹配。按位置传递的参数,称为:“位置参数”。
在这里插入图片描述

2 默认参数

在 Python 中,可以在声明函数时,预先为参数设置一个默认值。当调用函数时,如果某个参数具有默认值,则可以不向函数传递该参数,这时,函数将使用声明函数时为该参数设置的默认值。 声明一个参数具有默认值的语法如下:

def 函数名(参数=默认值): 
	代码

在这里插入图片描述

3 关键字参数

在 Python 中,参数传递不仅仅可以按照声明函数时参数的顺序进行传递,还可以按照形参的名称传递参数,称为“命名参数”,也称“关键字参数”。 使用按形参的名称传递参数的方式调用函数时,要在调用函数名后的圆括号里为函数的所有参数赋值,赋值的顺序可以不必按照函数声明时的参数顺序。
在这里插入图片描述

4 可变参数

在 Python 中,函数可以具有任意个参数,而不必在声明函数时对所有参数进行定义。声明函数时,如果在参数名前加上一个星号“* ”,则表示将多个参数收集到一个“元组”对象中;如果在参数名前加上两个星号“**”,则表示将多个参数收集到一个“字典” 对象中。
在这里插入图片描述

5 递归

所谓递归,就是在函数内部调用自身。在执行过程中,Python 解析器会利用栈 处理递归函数返回的数据。 所以递归函数的一个必要条件是要有终止条件,否则栈就会溢出。通过递归可以实现很多经典的算法,如阶乘、斐波那切数列等。
使用递归函数计算阶乘(factorial)
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值