PYTHON知识点学习-函数(下)

🌈write in front🌈

🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流.

🆔本文由 Aileen_0v0🧸 原创 CSDN首发🐒 如需转载还请通知⚠

📝个人主页:Aileen_0v0🧸---CSDN博客

🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​

📣系列专栏:Aileen_0v0🧸的PYTHON学习系列专栏------CSDN博客

✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本

目录

函数递归概念及例子🍈

1.1递归代码两要素🍉:

1.2递归的缺点🍉:

1.3递归的优点🍉:

函数参数🍓

2.1函数参数默认值🍅

2.2默认参数使用的注意事项🍅

2.3函数的关键字参数🍅

函数总结🍭


函数递归概念及例子🍈

函数递归:就是一个函数,自己调用自己

python 复制代码
#写一个函数,求 n 的阶乘(n 是正整数)
def f(n):
    result = 1
    for i in range (1,n+1):
        result *= i
    return result


print(f(5))
#-----------------------------------
#结果:120
python 复制代码
#利用递归方法求n的阶乘
#首先先思考
#递推公式:n! => n * (n - 1)!
#结束条件:1! => 1
def f(n):
    if n == 1:
        return 1
    return n * f(n - 1)

print(f(5))

递归的代码,虽然很多时候看起来写法很简单,但是执行过程可能会非常复杂!!

下面是利用debug调试的过程:

1.1递归代码两要素🍉:

|-----------|--------|
| 递归代码两要素 | 数学归纳法 |
| 1.递归条件 | 1.初始条件 |
| 2.递归的递推公式 | 2.递推公式 |

递归代码两要素可以对比数学归纳法记忆

1.2递归的缺点🍉:

1.执行过程非常复杂,难以理解~ ~

2.递归代码容易出现"栈溢出"的情况~ "栈":指的是****函数的调用栈

3.递归代码一般可以转换成等价的循环代码~ ~

并且,循环的版本通常运行速度要比递归版本有优势~ ~(函数调用也是有开销的)

1.3递归的优点🍉:

代码非常简洁**!!尤其是处理一些"问题本身就是通过递归的方式定义的"**

数据结构~二叉树~ ~

函数参数🍓

2.1函数参数默认值🍅

复制代码
python中的函数,可以给形参指定默认值
带有默认值的参数,可以在调用的时候不传参.
python 复制代码
def add(x,y):
    print(f"x = {x}, y = {y}")  #在函数内部加上打印信息方便我们进行调试~ ~
    return x + y

result = add(10,20)
print(result)

上面的在函数内部加上打印信息方便我们进行调试~ ~

但是,像这种调试信息,希望在正式发布的时候不要出现,只是在调试阶段才有~ ~

所以我们可以给他指定一个默认参数debug=False~

这个形参的默认值就是False

带有默认值的形参 就可以在调用函数的时候,不必传参~

python 复制代码
#参数默认值
#python中的函数,可以给形参指定默认值
#带有默认值的参数,可以在调用的时候不传参.
def add(x,y,debug=False):  #指定一个默认参数debug=False
    if debug:
        print(f"x = {x}, y = {y}")  #在函数内部加上打印信息方便我们进行调试~ ~
    return x + y

result = add(10,20)
print(result)
#---------------------------
#运行结果:30

我们可以通过手动传参影响这个默认值~

通过这样的默认值,就可以让函数设计更灵活~ ~

2.2默认参数使用的注意事项🍅

Python中要求带有默认值的形参,得在形参列表的后面~ ~

而不能在 前面 / 中间!

就算是****多个带有默认参数的形参,这些都得放到后面!!

2.3函数的关键字参数🍅

按照先后顺序来传参~ ~

这种传参风格,称为"位置参数"****-------->这种方式是各个编程语言中最普遍的传参方式

现在我要介绍的是另一种方式**--------->"关键字传参":**按照形参的名字来进行传参!

python 复制代码
#关键字传参
def test(x,y):
    print(f"x={x}")
    print(f"x={y}")

test(x=10,y=20)
test(y=100,x=200)

通过上面的代码,可以非常明显地告诉程序🐒,你的参数要传给谁!!

另外可以无视形参和实参的顺序!!

此外,位置参数 和 关键字参数 还能混着用,只不过混着用的时候要求,位置参数在前,关键字参数在后~ ~
关键字参数,一般也是搭配着默认参数来使用的~

一个函数可以提供很多参数,来实现对这个函数内部功能做出一些调整设定~ ~

为降低调用者的使用成本,就可以把大部分参数设定出默认值~

当调用者需要调整其中一部分参数时,就可以搭配关键字参数来进行操作~ ~

函数总结🍭


🍒函数的知识点就分享到这里啦~🍒

🍒喜欢就一键三连支持一下吧♥~🍒

🍒谢谢家人们!🍒

相关推荐
Willliam_william4 分钟前
SystemC学习(1)— SystemC安装与HelloWorld
学习
sealaugh329 分钟前
aws(学习笔记第一课) AWS CLI,创建ec2 server以及drawio进行aws画图
笔记·学习·aws
布丁不叮早起枣祈9 分钟前
10.5学习
学习
弱冠少年12 分钟前
websockets库使用(基于Python)
开发语言·python·numpy
长天一色12 分钟前
C语言日志类库 zlog 使用指南(第五章 配置文件)
c语言·开发语言
向上的车轮18 分钟前
Django学习笔记五:templates使用详解
笔记·学习·django
一般清意味……24 分钟前
快速上手C语言【上】(非常详细!!!)
c语言·开发语言
卑微求AC25 分钟前
(C语言贪吃蛇)16.贪吃蛇食物位置随机(完结撒花)
linux·c语言·开发语言·嵌入式·c语言贪吃蛇
技术无疆35 分钟前
【Python】Streamlit:为数据科学与机器学习打造的简易应用框架
开发语言·人工智能·python·深度学习·神经网络·机器学习·数据挖掘
羊小猪~~43 分钟前
机器学习/数据分析--用通俗语言讲解时间序列自回归(AR)模型,并用其预测天气,拟合度98%+
人工智能·python·机器学习·数据挖掘·数据分析·回归·时序数据库