Python 函数与Lambda表达式完整指南
函数基础
什么是函数?
函数是仅在调用时运行的代码块,用于执行特定任务。您可以将数据(称为参数)传递给函数,函数也可以返回数据。
创建函数
在Python中,使用 def
关键字定义函数:
python
def my_function():print("Hello from a function")
调用函数
要调用函数,请在函数名称后加上括号:
python
def my_function():print("Hello from a function")my_function()
函数参数
基本参数
信息可以作为参数传递给函数。在函数名称后的括号内指定参数:
python
def my_function(fname):print(fname + " Refsnes")my_function("Emil") my_function("Tobias") my_function("Linus")
形参和实参
形参:函数定义中括号内列出的变量
实参:调用函数时发送给函数的值
多个参数
函数可以接受多个参数,用逗号分隔:
python
def my_function(fname, lname):print(fname + " " + lname)my_function("Emil", "Refsnes")
任意参数(*args)
如果不知道将传递多少个参数,请在参数名称前添加一个 *
:
python
def my_function(*kids):print("The youngest child is " + kids[2])my_function("Emil", "Tobias", "Linus")
关键字参数
使用 key = value
语法发送参数,此时参数顺序无关紧要:
python
def my_function(child3, child2, child1):print("The youngest child is " + child3)my_function(child1="Emil", child2="Tobias", child3="Linus")
任意关键字参数(**kwargs)
如果不知道将传递多少个关键字参数,请在参数名称前添加两个星号 **
:
python
def my_function(**kid):print("His last name is " + kid["lname"])my_function(fname="Tobias", lname="Refsnes")
默认参数值
可以为参数设置默认值:
python
def my_function(country="Norway"):print("I am from " + country)my_function("Sweden") my_function("India") my_function() # 使用默认值"Norway" my_function("Brazil")
传递数据类型的参数
可以将任何数据类型的参数发送到函数,它在函数内部仍保持相同的数据类型:
python
def my_function(food):for x in food:print(x)fruits = ["apple", "banana", "cherry"] my_function(fruits)
返回值
使用 return
语句让函数返回值:
python
def my_function(x):return 5 * xprint(my_function(3)) print(my_function(5)) print(my_function(9))
特殊语句
pass 语句
函数定义不能为空,使用 pass
语句避免错误:
python
def myfunction():pass
递归
Python 支持函数递归,即函数可以调用自身:
python
def tri_recursion(k):if(k > 0):result = k + tri_recursion(k-1)print(result)else:result = 0return resultprint("\n\nRecursion Example Results") tri_recursion(6)
Lambda 函数
什么是Lambda函数?
Lambda函数是一个小的匿名函数,可以接受任意数量的参数,但只能有一个表达式。
语法
python
lambda arguments : expression
基本示例
python
# 将参数加10 x = lambda a : a + 10 print(x(5))# 多个参数相乘 x = lambda a, b : a * b print(x(5, 6))# 三个参数求和 x = lambda a, b, c : a + b + c print(x(5, 6, 2))
Lambda函数的应用场景
在另一个函数中使用匿名函数时,Lambda函数特别有用:
python
def myfunc(n):return lambda a : a * n# 创建始终翻倍的函数 mydoubler = myfunc(2) print(mydoubler(11))# 创建始终增加三倍的函数 mytripler = myfunc(3) print(mytripler(11))# 在同一程序中创建多个函数 mydoubler = myfunc(2) mytripler = myfunc(3) print(mydoubler(11)) print(mytripler(11))
总结
Python函数是组织代码的重要工具,它们提供了参数传递、返回值、递归等功能。
Lambda函数则提供了创建简洁匿名函数的能力,特别适用于需要简单函数对象的场景。
掌握函数和Lambda表达式的使用是成为高效Python程序员的关键步骤。