函数基础

什么是函数?

函数是仅在调用时运行的代码块,用于执行特定任务。您可以将数据(称为参数)传递给函数,函数也可以返回数据。

创建函数

在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程序员的关键步骤。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐