lambda表达式双冒号使用条件_Python函数和lambda表达式

函数

Python里万物皆对象,函数也是对象。

一 函数的定义

  • 函数以 def 关键词开头,后面接 函数名 和 圆括号() 以及冒号:
  • 冒号下几行都是描述函数的具体操作内容;最后以 return 结尾;return 后若不带任何值或者表达式,则函数返回 none 。

二 函数的调用

三 函数文档

help(函数名)

四 参数

  • 什么是形参和实参?

函数定义过程中的参数是形参,在实际调用函数时传入的参数是实参。

1.位置参数

最普通的就是位置参数了。

2. 默认参数

在函数定义的时候,先给参数赋一个值,作为默认值;若调用函数时没有指定参数值,就使用默认值。

def printinfo(name, age=8):     #name是位置参数,age=8 是默认参数
    print('Name:{0},Age:{1}'.format(name, age))


printinfo('小马')  # Name:小马,Age:8
printinfo('小马', 10)  # Name:小马,Age:10

def printinfo(name, age):
    print('Name:{0},Age:{1}'.format(name, age))

# 函数调用时允许参数值的位置顺序和函数定义时不同,但需要在调用时把参数名指定出来
printinfo(age=8, name='小马')  # Name:小马,Age:8

3. 可变参数

可变参数就是指传入的参数值是任意数量,0也可;所有参数自动组装成元组

可变参数的特征是前面加一个 * 号(加了 * 的变量名会存放所有未命名的参数):

lambda表达式双冒号使用条件_Python函数和lambda表达式_第1张图片

4. 关键字参数

关键字参数的特征是在参数前面加两个 * 号;

所有参数自动组装成字典,可传入任意数量的参数

lambda表达式双冒号使用条件_Python函数和lambda表达式_第2张图片

可变参数和关键字参数的异同:

同:都可以传入任意数量的参数;

异:关键字参数传入的每个参数都需要指定一个关键字;且关键字和值组装成字典,而可变参数是组装成元组。

注意关键字参数传入参数时,不可传入重复的关键字:

lambda表达式双冒号使用条件_Python函数和lambda表达式_第3张图片

5. 命名关键字参数

使用场景是:想要限制关键字参数的命名的时候。

命名关键字参数的特征是:

*,参数名

没错!就是在参数名前加 * 和逗号

lambda表达式双冒号使用条件_Python函数和lambda表达式_第4张图片

6. 参数组合

位置参数、默认参数、可变参数、关键字参数、命名关键字参数,这5种中的4种都可以一起使用。但是参数定义的顺序必须是:

  • 位置参数、默认参数、可变参数、关键字参数;
  • 位置参数、默认参数、命名关键字参数、关键字参数。

总结:位置参数和默认参数总是排前面,关键字参数总是排最后,中间可变参数和命名关键字参数二选一。

五 函数的返回值

lambda表达式双冒号使用条件_Python函数和lambda表达式_第5张图片

lambda表达式双冒号使用条件_Python函数和lambda表达式_第6张图片

六 变量作用域

一 局部变量和全局变量

局部变量:只能在被声明的函数内部使用

全局变量:可以在整个程序范围内使用

当局部变量想变成全局变量的时候,可以使用global 或者 nonlocal 关键字

lambda表达式双冒号使用条件_Python函数和lambda表达式_第7张图片

二 内嵌函数

lambda表达式双冒号使用条件_Python函数和lambda表达式_第8张图片

内嵌函数只能在函数内被调用

三 闭包

lambda表达式双冒号使用条件_Python函数和lambda表达式_第9张图片

闭包是函数式编程一种重要的语法结构,是特殊的内嵌函数;

如果在一个内部函数里对外层的非全局变量进行了引用,就称这个内部函数为闭包;通过闭包可以访问外层的非全局变量,这个作用称为 闭包作用域。

如果要修改闭包作用域内的变量需要 nonlocal关键字:

lambda表达式双冒号使用条件_Python函数和lambda表达式_第10张图片

四 递归

如果一个函数在内部调用自身,就是一个递归函数。

lambda表达式双冒号使用条件_Python函数和lambda表达式_第11张图片
学习资料里的递归写法

lambda表达式双冒号使用条件_Python函数和lambda表达式_第12张图片
害 我自己写的递归

lambda表达式双冒号使用条件_Python函数和lambda表达式_第13张图片
我写的斐波那契数列

lambda表达式双冒号使用条件_Python函数和lambda表达式_第14张图片

Lambda表达式

Python有2类函数:

一类就是使用def关键字定义的正规函数;一类是使用lambda关键字定义的匿名函数。

匿名函数是没有函数名的函数;它拥有自己的命名空间,无法访问参数列表以外或者全局命名空间里的参数。

一 匿名函数的定义

Lambda关键字后面的是 参数,冒号后面的是 表达式(同时也是返回值)

lambda表达式双冒号使用条件_Python函数和lambda表达式_第15张图片

8b60a58d1eec377806d1cc20fbe90b6f.png

二 Lambda函数的应用

在 fileter() 和map() 函数中的应用:

  • filter(function, iterable) 过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。

5963e8f56a5749db1e931cc7857a6b00.png
  • map(function, *iterables)根据提供的函数对指定序列做映射。

lambda表达式双冒号使用条件_Python函数和lambda表达式_第16张图片
  • 除此之外还可以自己定义其他的高阶函数...

python学习第7天,python打卡第7天~

AI训练营Python-阿里云天池​tianchi.aliyun.com
lambda表达式双冒号使用条件_Python函数和lambda表达式_第17张图片

你可能感兴趣的:(lambda表达式双冒号使用条件_Python函数和lambda表达式)