python 01_函数

本文深入解析函数编程的基础概念,涵盖函数定义与调用、参数类型、返回值、文档字符串、匿名函数、作用域、递归、高阶函数、闭包及装饰器等内容,帮助读者掌握函数编程的核心技巧。

1.1 理解函数

不太清楚有没有没有函数的编程语言,至少我接触的几种都是有的。前人正常情况不会发明没有用的东西,如果有,也应该早已淘汰。而事实是函数在编程语言中是普遍的。那就一定是因为的确解决了普遍性的问题。对于函数,我的理解是:封装了一段有某种功能的代码,在需要时可以直接拿来使用。基于此,接下来就学习一下前人的套路。

1.2 定义、调用函数

语法:

def 函数名( 形参,形参... ):   #不要丢掉冒号:哦~
   
    代码块                    
   

想要使用定义好的函数,即调用函数怎么办呢?

函数名(实参,实参...)  #对,你没有看错,就是这么简单~

1.3 参数

1.3.1 形参和实参

定义时函数名后边括号里的参数就是形参,调用时括号内输入的参数就是实参。

定义形参时可以指定默认值。

1.3.2 实参的传递方式

  • 必备参数         我还是习惯称为位置参数,好理解。 形参的位置对应实参的位置。
  • 关键字参数      可以不按照形参定义的顺序传递,直接根据参数名传递(可与位置参数混合使用,但要将位置参数写前面)
  • 默认参数          调用函数时,实参未传递,则使用默认值(定义函数时预设的值)
  • 不定长参数      比如要计算任意多个数的和,总不能再函数上改来改去吧,这时不定长参数就可以大展身手了
  • 参数解包

* 形参前加星号可以存放多个参数;

传入元组时,形参若有两个。实参前加*,可以传递一个参数,但是元组的元素要与形参数量一致;

传入字典时,加**,不传入键数据。

1.4 return 语句(返回值)

返回值就是函数执行以后返回的结果,可以通过 return 来指定函数的返回值。

如果只写return 或者 不写return,则相当于return None

1.5 文档字符串

理解为函数内的注释就可以了,可以用help()查看函数是干嘛的。

1.6 lambda 表达式(匿名函数)

一种快速定义单行的最小函数 (一次性函数,精简代码)

语法:

lambda 参数列表 : 返回值 (语法糖)

1.7 作用域与命名空间

作用域

作用域就是变量生效的区域

全局变量&局部变量

顾名思义,函数外部的就是全局变量,函数内部的就是局部变量,也叫函数作用域

在函数内部申明全局变量,用 global 声明

命名空间

命名空间,就是变量存储的位置(本质上是字典)

locals() 获取当前作用域的命名空间

1.8 递归

递归,就是俄罗斯套娃呀~

递归式函数,在函数中自己调用自己!

递归的两个条件:

1.基线条件  问题可以被分解为小问题,满足基线条件,递归就不再执行

2.递归条件  将问题继续分解的条件

循环与递归可以互相代替。

1.9 高阶函数

python中,函数是一等对象。因此可以进行函数是编程。

高阶函数(符合至少一个条件)

①接收一个或多个函数作为参数

②将函数作为返回值返回

filter()

map()

sort()

1.10 闭包(也是一种高阶函数)

将函数作为返回值返回,叫闭包。通过闭包可以创建一些只有当前函数能访问的变量

1.11 装饰器(高阶函数)

不修改原代码的情况下对函数进行扩展

注:总结的是脉络,暂不写代码示例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值