Python自定义函数

1. 什么是Python自定义函数

Python自定义函数是指由程序员自己定义的能够完成特定任务的函数。与内置函数不同,自定义函数需要程序员自己定义函数名、参数、返回值等等。

在Python中,我们可以使用def语句来定义一个函数,例如下面这个例子:

def greet(name):

print(f'Hello, {name}!')

以上代码定义了一个名为greet的函数,该函数接收一个名为name的参数,并打印出一段问候语,其中name为参数值。现在我们可以调用该函数:

greet('Alice')

输出结果为:

Hello, Alice!

2. 自定义函数的语法

在Python中,自定义函数的基本语法如下:

def function_name(parameters):

"""docstring"""

statement(s)

return expression

2.1 函数名称

函数名称是用来标识函数的唯一标识符。符合标识符命名规则,即只能由字母、数字及下划线组成,不能以数字开头。

2.2 参数列表

函数的参数列表是指在函数定义中需要用到的变量,用逗号分隔。参数可以为空。

2.3 函数体

函数体是由一系列可执行语句组成的代码块,它包含在函数定义中并在函数调用时执行。

2.4 返回值

函数可以返回一个值。使用return语句,并跟上要返回的值。

3. Python自定义函数的实例

下面是一个例子,它定义了一个函数,用于计算两个数的和:

def sum(a, b):

"""返回两个数的和"""

return a + b

result = sum(3, 5)

print(result)

输出结果为:

8

4. 函数参数

函数参数可以分为两种类型:位置参数和关键字参数。

4.1 位置参数

位置参数就是按照位置顺序传递给函数的参数。例如下面这个计算两个数的和的函数:

def sum(a, b):

return a + b

如果我们想要计算1和2的和,那么可以像这样调用函数:

result = sum(1, 2) # 如果改动不大可以默认=的结果不输出

print(result)

输出结果为:

3

4.2 关键字参数

关键字参数是指传递给函数的参数以键值对的形式出现,每个参数都有一个名称与之对应。例如下面这个函数:

def greet(name, message):

print(f'{name}, {message}')

我们可以像下面这样使用关键字参数调用它:

greet(name='Alice', message='Hello')

输出结果为:

Alice, Hello

你可以像下面这样混合使用位置参数和关键字参数:

greet('Alice', message='Hi')

输出结果为:

Alice, Hi

5. 不定长参数

有时候我们希望一个函数接受任意数量的参数,可以使用不定长参数。

5.1*args表示不定长参数

使用*args表示函数接受任意数量的非关键字参数。例如下面这个计算多个数的和函数:

def sum(*args):

result = 0

for num in args:

result += num

return result

total = sum(1, 2, 3, 4, 5)

print(total)

输出结果为:

15

5.2 **kwargs表示不定长关键字参数

使用**kwargs表示函数接受任意数量的关键字参数。例如下面这个函数:

def greet(**kwargs):

for key, value in kwargs.items():

print(f'{key}: {value}')

greet(name='Alice', message='Hi')

输出结果为:

name: Alice

message: Hi

6. 匿名函数

Python中可以使用lambda表达式创建匿名函数。匿名函数是没有名称的函数,只能使用一次。

lambda表达式如下:

lambda arguments: expression

例如下面这个计算两个数的和的函数:

sum = lambda a, b: a + b

result = sum(2, 3)

print(result)

输出结果为:

5

7. 闭包

Python中函数可以嵌套,并且内部的函数可以访问外部函数的变量。

下面是一个计算平均数的函数,该函数返回一个函数,用于累加数值,并计算平均数:

def averaging():

numbers = []

def add_number(number):

numbers.append(number)

total = sum(numbers)

return total / len(numbers)

return add_number

avg = averaging()

print(avg(1))

print(avg(2))

print(avg(3))

输出结果为:

1.0

1.5

2.0

以上代码中,函数averaging返回了内部函数add_number。该函数将数字附加到numbers列表中,并计算numbers中数字的平均值。我们首先调用averaging来获取add_number函数的引用。然后,我们使用add_number来添加数字并计算平均值。

8. 总结

Python自定义函数非常方便且灵活,我们可以根据需要定义一个函数来完成特定的任务。在函数的参数中,我们可以使用位置参数、关键字参数、不定长参数、不定长关键字参数来实现不同的功能。此外,你还可以使用匿名函数和闭包,使你的代码更加简洁。通过不断地学习和实践,相信你能掌握Python自定义函数的精髓。

后端开发标签