Python学习--函数与Lambda表达式

本文详细介绍了Python中的函数,包括定义、调用、返回值、参数类型、变量作用域、内嵌函数和闭包。同时,还讨论了Lambda表达式,包括匿名函数的定义和应用。文中通过丰富的例子和练习题帮助读者理解和掌握这些概念。
摘要由CSDN通过智能技术生成

链接: DataWhale函数与Lambda表达式.

1.函数

函数的定义

def functionname(parameters):
    "函数_文档字符串"
    function_suite
    return [expression]
  • 函数以def关键词开头,后接函数名和圆括号()。

  • 函数执行的代码以冒号起始,并且缩进。

  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None

函数的调用

def printme(str):
    print(str)


printme("我要调用用户自定义函数!")  # 我要调用用户自定义函数!
printme("再次调用同一函数")  # 再次调用同一函数

函数的返回值

【例子1】

def add(a, b):
    return a + b


print(add(1, 2))  # 3
print(add([1, 2, 3], [4, 5, 6]))  # [1, 2, 3, 4, 5, 6]

【例子2】

def back():
    return 1, '小马的程序人生', 3.14


print(back())  # (1, '小马的程序人生', 3.14)

【例子3】

def printme(str):
    print(str)

temp = printme('hello') # hello
print(temp) # None
print(type(temp))  # <class 'NoneType'>

说明:此函数的功能是打印字符串,没有返回值。

函数文档及注解

  • 在 def 语句后⾯把注释⽂档放在引号(单引、双引、三引都可以)⾥⾯就⾏,这个⽂档可以通过function.doc 访问。

    def MyFirstFunction(name):
        "函数定义过程中name是形参"
        # 因为Ta只是一个形式,表示占据一个参数位置
        print('传递进来的{0}叫做实参,因为Ta是具体的参数值!'.format(name))
    
    MyFirstFunction('it has to word!')  
    # 传递进来的it has to word!叫做实参,因为Ta是具体的参数值!
    
    print(MyFirstFunction.__doc__)  
    # 函数定义过程中name是形参
    
    help(MyFirstFunction)
    # Help on function MyFirstFunction in module __main__:
    # MyFirstFunction(name)
    #    函数定义过程中name是形参
    
  • 函数声明中的各个参数可以在:之后增加注解表达式。如果参数有默认值,注解放在参数名和=号之间。如果想注解返回值,在)和函数声明末尾的:之间添加->和⼀个表达式。

    Python对注解所做的唯⼀的事情是,把它们存储在函数的 annotations 属性⾥。 仅此⽽已,Python不做检查、不做强制、不做验证,什么操作都不做。换句话说, 注解对Python解释器没有任何意义。注解只是元数

    据,可以供IDE、框架和装饰器等⼯具使⽤。

    def function(text: str, max_len: 'int > 0' = 80) -> str:
    

函数参数

Python 的函数具有非常灵活多样的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。从简到繁的参数形态如下:

  • 位置参数 (positional argument)

  • 默认参数 (default argument)

  • 可变参数 (variable argument)

  • 关键字参数 (keyword argument)

  • 命名关键字参数 (name keyword argument)

  • 参数组合

1.位置参数

def functionname(arg1):
	"函数文档字符串"
	function_suite
	return [expression]
  • arg1 - 位置参数 ,这些参数在调用函数 (call function) 时位置要固定。
  • Python 允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
    【例子】
def printinfo(name, age):
    print('Name:{0},Age:{1}'.format(name, age))


printinfo(age=8, name='小马')  # Name:小马,Age:8

2.默认参数

def functionname(arg1, arg2=v):
	"函数文档字符串
### 回答1: Lambda表达式Python中的一种匿名函数,它可以在一行代码中定义一个函数Lambda表达式通常用于简单的函数,它们可以作为参数传递给其他函数或作为返回值返回。 Lambda表达式的语法如下: lambda 参数列表: 表达式 其中,参数列表是用逗号分隔的形式参数,表达式是函数的返回值。 例如,下面的代码定义了一个简单的Lambda函数: f = lambda x: x * x 这个函数接受一个参数x,并返回x的平方。我们可以像调用普通函数一样调用它: print(f(5)) # 输出25 Lambda表达式还可以用于定义匿名函数,例如: g = lambda x, y: x + y 这个函数接受两个参数x和y,并返回它们的和。我们可以像调用普通函数一样调用它: print(g(2, 3)) # 输出5 总之,Lambda表达式Python中一种非常方便的函数定义方式,它可以让我们更加简洁地编写代码。 ### 回答2: Lambda表达式Python函数中的一种简洁方式,它可以定义在一行内的匿名函数。Lambda使用关键字“lambda”来表示,后面跟随一个或多个参数,分隔符为逗号,然后是冒号和一个表达式。返回值是该表达式的结果。 Lambda表达式的基本语法如下: lambda arguments: expression 其中arguments参数可以是0个、1个或多个参数,expression表达式是lambda函数的返回值。 Lambda表达式的使用场景比较广泛,通常用于函数式编程、过滤器(filter)、映射器(map)、排序器(sort)等操作中。 例如,我们可以使用lambda表达式来定义一个简单的函数: x = lambda a : a + 10 print(x(10)) # 输出结果为20 上述例子中,lambda表达式定义了一个参数“a”,表达式为“a+10”,即函数返回值为传入参数a加上10。 当需要对一个列表中的元素进行操作时,我们可以使用map函数结合lambda表达式来实现: lst = [1, 3, 5, 7] result_lst = list(map(lambda x:x*2, lst)) print(result_lst) # 输出结果为[2, 6, 10, 14] 上述例子中,lambda表达式定义了一个参数“x”,表达式为“x*2”,即将列表中的每个元素乘以2。map函数将该lambda表达式应用于lst中的每个元素,返回一个新的列表。 Lambda表达式比较适用于简单的函数定义和一些简单的操作,但对于较为复杂的任务或需要频繁使用的代码,建议还是使用函数进行定义。 ### 回答3: Python是一种广泛使用的编程语言,而函数Python编程的重要部分。在Python中,函数是一个特殊的代码块,可以接受一些输入(参数),并在执行一些操作后返回输出。其中,lambda表达式是定义函数的一种不同方式。 lambda表达式也被称为匿名函数,因为它们可以定义一个没有名称的函数。与普通函数不同,lambda函数只能包含一个表达式,而不是一条语句块。语法如下: lambda 参数: 表达式 下面是一个简单的例子: add = lambda x, y: x + y print(add(2, 3)) # 输出5 在这个例子中,lambda函数的定义是add = lambda x, y: x + y,其中参数是x和y,表达式是x + y。定义后,我们可以像使用普通函数一样使用它。 lambda函数有许多用途。其中之一是作为其他函数的参数,例如在sort()函数中进行排序。例如,我们可以使用lambda函数按照列表中每个元素的第二个元素进行排序。实现方式如下: a = [(1, 2), (4, 1), (9, 10), (13, -3)] a.sort(key=lambda x: x[1]) # 按每个元组的第二个元素进行排序 print(a) 输出结果为:[(13, -3), (4, 1), (1, 2), (9, 10)] 总之,Lambda表达式Python语言中一个十分有用的特性,它允许我们创建匿名函数,使代码变得更加简洁和易读。在实际编程中,可以将其用于诸如函数参数传递、过滤器、排序等许多编程任务中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值