python函数和python匿名函数lambda详解

目录
  • 1. python函数
    • 1.1 函数的作用
    • 1.2 函数定义
    • 1.3 函数调用
    • 1.4 函数的参数
      • 1.4.1 参数的传递
      • 1.4.2 参数类型
      • 1.4.2.1 位置参数(必备参数)
      • 1.4.2.2 关键字参数
      • 1.4.2.3可变参数
      • 1.4.5 为参数设置默认值
    • 1.5 函数返回值
  • 2. python lambda表达式
    • 2.1 匿名函数
    • 2.2 使用场景
    • 2.3 语法
    • 2.4 实例

1. python函数

1.1 函数的作用

1.2 函数定义

  • def:函数定义关键词
  • function_name:函数名称
  • ():参数列表放置的位置,可以为空
  • parameter_list:可选,指定向函数中传递的参数
  • comments:可选,为函数指定注释
  • function_body:可选,指定函数体
def function_name([parameter_list]):
    [''' comments ''']
    [function_body]

定义函数的注意事项:

  • 缩进:python 是通过严格的缩进来判断代码块儿

    • 函数体和注释相对于 def 关键字必须保持一定的缩进,一般都是 4 个空格
    • pycharm 自动格式化快捷键:ctrl+alt+L
  • 定义空函数
    • 使用 pass 语句占位
    • 写函数注释 comments、

1.3 函数调用

  • function_name:函数名称
  • parameter_value:可选,指定各个参数的值
function_name([parameter_value])

1.4 函数的参数

1.4.1 参数的传递

  • 形式参数:定义函数时,函数名称后面括号中的参数
  • 实际参数:调用函数时,函数名称后面括号中的参数
# a, b, c 为形式参数
def demo_func(a, b, c):
    print(a, b, c)

# 1, 2, 3 为实际参数
demo_func(1, 2, 3)

1.4.2 参数类型

1.4.2.1 位置参数(必备参数)

  • 数量必须与定义时一致
  • 位置必须与定义时一致
def demo_func(a, b, c):
    print(a, b, c)

# 1 赋值给 a, 2 赋值给 b, 3 赋值给 c
demo_func(1, 2, 3)

1.4.2.2 关键字参数

  • 使用形式参数的名字确定输入的参数值
  • 不需要与形式参数的位置完全一致
def demo_func(a, b, c):
    print(a, b, c)

demo_func(a=1, b=2, c=3)

1.4.2.3可变参数

  • 可变参数也称为不定长参数
  • 传入函数中实际参数可以是任意多个
  • 常见形式
    • *args
    • **kwargs
1.4.2.3.1 *args
  • 接收任意多个实际参数,并将其放到一个元组
  • 使用已经存在的列表元组作为函数的可变参数,可以在列表的名称前加*
def print_language(*args):
    print(args)

print_language("python", "java", "php", "go")

params = ["python", "java", "php", "go"]
print_language(*params)
1.4.2.3.2 **kwargs
  • 接收任意多个类似关键字参数一样显式赋值的实际参数,并将其放到一个字典
  • 使用已经存在字典作为函数的可变参数,可以在字典的名称前加**
def print_info(**kwargs):
    print(kwargs)

print_info(Tom=18, Jim=20, Lily=12)

params = {'Tom':18, 'Jim':20, 'Lily':12}
print_language(**params)

1.4.5 为参数设置默认值

  • 定义函数时可以指定形式参数的默认值
  • 指定默认值的形式参数必须放在所有参数的最后,否则会产生语法错误
  • param=default_value:可选,指定参数并且为该参数设置默认值为 default_value
  • 设置默认值必须要使用不可用对象,可变对象不可以用,如:列表,字典。
def function_name(..., [param=default_value]):
    [function_body]

1.5 函数返回值

value:可选,指定要返回的值

def function_name([parameter_list]):
    [''' comments ''']
    [function_body]
    return [value]

2. python lambda表达式

2.1 匿名函数

  • 没有名字的函数
  • 用 lambda 表达式创建匿名函数

2.2 使用场景

  • 需要一个函数,但是又不想费神去命名这个函数
  • 通常在这个函数只使用一次的场景下
  • 可以指定短小的回调函数

2.3 语法

  • result:调用 lambda 表达式
  • [arg1 [, arg2, …. , argn]]:可选,指定要传递的参数列表
  • expression:必选,指定一个实现具体功能的表达式
result = lambda [arg1 [, arg2, .... , argn]]: expression

2.4 实例

L=[('b',2),('a',1),('c',3),('d',4)]

# 2、利用参数 cmp 排序
sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))
# 结果:
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
# 3、利用参数 key 排序
sorted(L, key=lambda x:x[1])
# 结果:
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

到此这篇关于python函数和python匿名函数lambda的文章就介绍到这了,更多相关python匿名函数lambda内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python浅析匿名函数lambda的用法

    目录 lambda函数的定义    Lambda函数在Python中 lambda函数的定义    lambda函数是Python中常用的内置函数,又称为匿名函数.和普通函数相比,它只有函数体,省略了def和return,使得结构看起来更精简.其基本调用语法如下: lambda [var1 [,var2,…varn]]:expression [var1 [,var2,…varn]]:形式参数,可以理解为入参,供表达式使用. expression:函数表达式,其结果为lambda函数的返回值. L

  • Python lambda匿名函数深入讲解

    目录 一,Python中lambda函数的语法 二,两个注意点 三,lambda 应用 一,Python中lambda函数的语法 lambda 函数在 Python 编程语言中使用频率非常高,使用起来非常灵活.巧妙:lambda 函数是一个匿名函数(即,没有名称定义),它可以接受任意数量的参数,但与普通函数不同,它只计算并返回一个表达式 Python 中的 lambda 函数使用以下语法表达: lambda [arg1 [,arg2,.....argn]]:expression ""&

  • 详解Python匿名函数(lambda函数)

    匿名函数lambda Python使用lambda关键字创造匿名函数.所谓匿名,意即不再使用def语句这样标准的形式定义一个函数.这种语句的目的是由于性能的原因,在调用时绕过函数的栈分配.其语法是: lambda [arg1[, arg2, ... argN]]: expression 其中,参数是可选的,如果使用参数的话,参数通常也会在表达式之中出现. 下面举例来说明lambda语句的使用方法(无参数). # 使用def定义函数的方法 def true(): return True #等价的l

  • Python 中的lambda匿名函数和三元运算符

    目录 匿名函数 什么是匿名函数 分类 三元运算符 匿名函数 什么是匿名函数 用一句话表达只有返回值的函数就是匿名函数.匿名函数只用来实现一些简单的函数功能,所以追求代码的简洁和高效.使用关键字 ​​lambda​​ 定义,所以匿名函数又称之为lambda表达式. 分类 无参数的​​lambda​​ 表达式 # 普通函数 def func(): return 'hello motherland' # 调用 res = func() print(res) # hello motherland # l

  •  Python 匿名函数lambda 详情

    目录 1.前言 2.如何使用 lambda 3.总结 1.前言 在 Python 中,说到函数,大家都很容易想到用 ​​def​​ 关键字来声明一个函数: def Hello():     # function body 然后我们可以在​添加由圆括号括起来的参数列表.函数体内可能有很多行代码,里面有尽可能多的语句和表达式.​ 除了 ​​def​​​ 语句定义函数以外,还有一种生成函数对象的表达式形式: ​​lambda​​ 表达式,这个表达式创建了一个能够随时调用的函数. 有时声明一个函数只有一

  • python匿名函数lambda原理及实例解析

    这篇文章主要介绍了python匿名函数lambda原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 #-*- coding:utf-8 -*- #__author__ = "www.iplaypy.com" # 普通python函数 def func(a,b,c): return a+b+c print func(1,2,3) # 返回值为6 # lambda匿名函数 f = lambda a,b,c:a+b+c

  • Python lambda 匿名函数优点和局限性深度总结

    目录 什么是 Python 中的 Lambda 函数 Python 中的 Lambda 函数如何工作 Lambda 函数在 Python 中的应用 带有 filter() 函数的 Lambda 带有 map() 函数的 Lambda 带有 reduce() 函数的 Lambda Python 中 Lambda 函数的优缺点 优点 缺点 总结 什么是 Python 中的 Lambda 函数 今天我们来学习 Python 中的 lambda 函数,并探讨使用它的优点和局限性 Let's do it!

  • python中lambda匿名函数详解

    在Python中,不通过def来声明函数名字,而是通过lambda关键字来定义的函数称为匿名函数 关键字lambda表示匿名函数 语法 lambda 参数:表达式 先写lambda关键字,然后依次写匿名函数的参数,多个参数中间用逗号连接,然后是一个冒号,冒号后面写返回的表达式 lambda函数比普通函数更简洁 匿名函数有个好处:函数没有名字,不必担心函数名冲突 匿名函数与普通函数的对比 : def sum_func(a, b, c): return a + b + c sum_lambda =

  • 基于Python函数的作用域规则和闭包(详解)

    作用域规则 命名空间是从名称到对象的映射,Python中主要是通过字典实现的,主要有以下几个命名空间: 内置命名空间,包含一些内置函数和内置异常的名称,在Python解释器启动时创建,一直保存到解释器退出.内置命名实际上存在于一个叫__builtins__的模块中,可以通过globals()['__builtins__'].__dict__查看其中的内置函数和内置异常. 全局命名空间,在读入函数所在的模块时创建,通常情况下,模块命名空间也会一直保存到解释器退出.可以通过内置函数globals()

  • 深入浅析Python 函数注解与匿名函数

    函数注解与匿名函数 关于函数参数的定义,调用以及函数参数的内容,在下面的文章中已经做了初步的介绍,有需要的可以访问进行了解: Python 函数 函数注解 在编写函数,当下肯定清楚函数如何使用的.若是函数较为复杂,过段时间,编写者有可能需要花一段时间去重新了解函数的使用,那其他使用者也同样会遇到这样的困惑. 所以当编写完函数后,可以为函数的参数添加一些额外的信息.这里给函数参数添加注解,能够提示程序员如何正确使用这个函数.如下示例: def add(x:int, y:int) -> int: '

  • Python内置函数zip map filter的使用详解

    并行遍历zip zip会取得一个或多个序理为参数,然后返回元组的列表,将这些序列中的并排的元素配成对. L1=[1,2,3,4] L2=[5,6,7,8] L3=zip(L1,L2) print(L3,type(L3)) <zip object at 0x7feb81b17f08> <class 'zip'> zip在python3中是一个可迭代对象,我们可以将其包含在list调用中以例一次性显示所有结果 list(L3) [(1, 5), (2, 6), (3, 7), (4,

  • python Scala函数与访问修辞符实例详解

    目录 常规函数 可变参数函数 使用名字调用函数 匿名函数 访问修饰符 常规函数 object Demo { def main(args: Array[String]) { println( "Returned Value : " + addInt(5,7) ); // 普通调用 println( "Returned Value : " + addInt(a=5,b=7) ); // 指定参数调用 } // 方法 默认参数 b = 7 def addInt( a:In

  • python中函数总结之装饰器闭包详解

    1.前言 函数也是一个对象,从而可以增加属性,使用句点来表示属性. 如果内部函数的定义包含了在外部函数中定义的对象的引用(外部对象可以是在外部函数之外),那么内部函数被称之为闭包. 2.装饰器 装饰器就是包装原来的函数,从而在不需要修改原来代码的基础之上,可以做更多的事情. 装饰器语法如下: @deco2 @deco1 def func(arg1,arg2...): pass 这个表示了有两个装饰器的函数,那么表示的含义为:func = deco2(deco1(func)) 无参装饰器语法如下:

  • python中函数默认值使用注意点详解

    当在函数中定义默认值时,值初始化只会进行一次,就是执行到def methodname时执行.看下面代码: from datetime import datetime def test(t=datetime.today()): print t if __name__ == "__main__": test() test() 两次方法调用输出的时间都为同一个值,而不是我们预想当前执行时间.对于上面这种情况,建议用下面的方式实现: from datetime import datetime

  • Python中zip()函数的解释和可视化(实例详解)

    zip()的作用 先看一下语法: zip(iter1 [,iter2 [...]]) -> zip object Python的内置help()模块提供了一个简短但又有些令人困惑的解释: 返回一个元组迭代器,其中第i个元组包含每个参数序列或可迭代对象中的第i个元素.当最短的可迭代输入耗尽时,迭代器将停止.使用单个可迭代参数,它将返回1元组的迭代器.没有参数,它将返回一个空的迭代器. 与往常一样,当您精通更一般的计算机科学和Python概念时,此模块非常有用.但是,对于初学者来说,这段话只会引发更

  • python中函数的返回值及类型详解

    目录 1.返回值介绍 2.带有返回值的函数 3.保存函数的返回值 4.四种函数的类型 1.无参数,无返回值的函数 2.无参数,有返回值的函数 3.有参数,无返回值的函数 4.有参数,有返回值的函数 5.小结 5.在python中我们可不可以返回多个值? 1.返回值介绍 现实生活中的场景: 我给儿子10块钱,让他给我买包烟.这个例子中,10块钱是我给儿子的,就相当于调用函数时传递到参数,让儿子买烟这个事情最终的目标是,让他把烟给你带回来然后给你对么,,,此时烟就是返回值 开发中的场景: 定义了一个

  • 对Python闭包与延迟绑定的方法详解

    Python闭包可能会在面试或者是工作中经常碰到,而提到Python的延迟绑定,肯定就离不开闭包的理解,今天总结下 关于闭包的概念以及一个延迟绑定的面试题. Python闭包 1.什么是闭包,闭包必须满足以下3个条件: 必须是一个嵌套的函数. 闭包必须返回嵌套函数. 嵌套函数必须引用一个外部的非全局的局部自由变量. 举个栗子 # 嵌套函数但不是闭包 def nested(): def nst(): print('i am nested func %s' % nested.__name__) ns

  • Python进阶_关于命名空间与作用域(详解)

    写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字.对象及其绑定的文章. 1. 命名空间 1.1 什么是命名空间 Namespace命名空间,也称名字空间,是从名字到对象的映射.Python中,大部分的命名空间都是由字典来实现的,但是本文的不会涉及命名空间的实现.命名空间的一大作用是避免名字冲突: def fun1(): i = 1 def fun2(): i = 2 同一个模块中的两个函数中,两个同名名字i之间绝没有任何

随机推荐