首页 > 编程笔记 > Python笔记 阅读:11

Python函数的定义和使用(附带实例)

Python 中,函数是一段可重复使用的代码块,用于执行特定的任务或操作。函数可以接受参数(即函数的输入),并且可以返回一个结果(即函数的输出)。

Python函数的定义

函数使得代码模块化,可维护性更强,并且可以避免重复编写相同的代码。

定义函数的基本语法如下:
def function_name(parameters):
    """
    文档字符串(可选):描述函数的功能、参数、返回值等信息
    """
    # 函数体,即函数要执行的代码块
    # 可以包含零个或多个语句
    return expression  # 可选,可以包含多个 return,用于返回函数的结果

函数体是函数要执行的代码块,可以包含零个或多个语句。return 语句用于返回函数的结果,可以返回一个值或多个值(以元组的形式返回)。

【实例 1】定义一个简单的函数:
def greet():
    print("Hello, world!")

【实例 2】定义带参数的函数:
def greet(name):
    print("Hello, " + name + "!")

【实例 3】定义带返回值的函数:
def add(a, b):
    return a + b

Python函数的调用

函数调用是指在程序中使用函数来执行特定任务的过程。

在 Python 中,函数调用通常通过函数名称后跟括号来完成,括号中可以包含参数列表(如果函数需要参数的话)。函数调用的基本语法如下:
function_name(argument1,argument2,…)

1) 位置参数

在函数调用中,参数的传递顺序与函数定义时的参数顺序一致。这种传递方式称为位置参数。

下面的示例中,函数 greet() 期望一个参数 name,在函数调用时传递了一个字符串“Alice”作为 name 的值,这就是位置参数。
def greet(name):
    print("Hello, " + name + "!")
greet("C语言中文网")
运行结果为:

Hello, C语言中文网!

2) 关键字参数

通过指定参数名称来传递参数,而不必依赖于它们在函数参数列表中的位置。这种方式称为关键字参数。

下面的示例中,name 和 message 都是关键字参数。在函数调用时指定了参数的名称,这样参数的顺序就不再重要。
def greet(name, message):
    print("Hello,", name)
    print(message)

greet(message="How are you?", name="Alice")
运行结果为:

Hello, Alice
How are you?

3) 混合使用位置参数和关键字参数

可以混合使用位置参数和关键字参数,但是位置参数必须在关键字参数之前。

下面的示例中,name 是位置参数,message 是关键字参数。位置参数 Alice 必须在关键字参数 message="How are you?" 之前。
def greet(name, message):
    print("Hello,", name)
    print(message)

greet("Alice",message="How are you?")
运行结果为:

Hello, Alice
How are you?

4) 默认参数

可以在函数定义时为参数指定默认值,这样在函数调用时如果没有提供对应参数的值,则使用默认值。

下面的示例中,message 参数具有默认值“How are you?”。如果在函数调用时不提供 message 参数的值,则使用默认值。
def greet(name, message="How are you?"):
    print("Hello,", name)
    print(message)

greet("Alice")
运行结果为:

Hello, Alice
How are you?

5) 不定数量的参数

可以定义接受任意数量参数的函数。在 Python 函数定义中:
下面的示例中,*args 将接受位置参数 1、2、3,**kwargs 将接受关键字参数 a=4 和 b=5:
def my_function(*args, **kwargs):
    print("Positional arguments:", args)
    print("Keyword arguments:", kwargs)

my_function(1, 2, 3, a=4, b=5)
运行结果为:

Positional arguments: (1, 2, 3)
Keyword arguments: {'a': 4, 'b': 5}

Python匿名函数(Lambda函数)

在 Python 中,匿名函数也称为 Lambda 函数,是一种特殊的函数,它可以在一行代码中定义,并且通常用于一些简单的函数操作。

与普通函数不同,匿名函数没有函数名称、文档字符串和正式的函数定义,它使用 lambda 关键字来创建。匿名函数的基本语法为:
lambda arguments:expression

匿名函数可以接受任意数量的参数,但是只能包含一个表达式。

例如,演示一个接受两个参数并返回它们的和的匿名函数。
add_numbers = lambda x, y: x + y  # 定义匿名函数,接受参数 x 和 y,并返回它们的和

# 调用匿名函数
result = add_numbers(3, 5)  # 将匿名函数赋值给变量 add_numbers,并调用该函数
print("The sum is:", result)
运行结果为:

The sum is: 8


匿名函数通常与内置函数 map()、filter()、sorted() 等结合使用,以提供更简洁的代码。例如,可以在 map() 函数中使用匿名函数来对一个列表中的每个元素执行特定操作。

下面的示例中,map() 函数使用一个匿名函数来计算列表中每个元素的平方,并将结果存储在 squared_numbers 中。最后,使用 list() 函数将 map 对象转换为列表并打印出来。
numbers=[1,2,3,4,5]
squared_numbers=map(lambda x:x ** 2,numbers)
print(list(squared_numbers))
运行结果为:

[1, 4, 9, 16, 25]

匿名函数在某些情况下可以提供简洁的解决方案,但由于其缺乏函数名和文档字符串,可能会降低代码的可读性。因此,在编写复杂的逻辑或需要多行代码的函数时,尽量使用常规的命名函数。

相关文章