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 * x
print(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 = 0
return result
print("\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程序员的关键步骤。
更多推荐



所有评论(0)