python函数定义与使用

  • Post category:Python

下面是Python函数定义与使用的完整攻略。

函数定义

在Python中,函数通常由以下几个部分组成:

  • 函数名:函数的名称,用于调用该函数。
  • 参数列表:函数接收的参数,可选。
  • 函数体:函数的主体,包含一些代码块,用于执行一些逻辑操作。

定义函数的语法如下所示:

def function_name(parameters):
    """函数文档字符串"""
    # 函数体
    return [expression]

其中,def 关键字用于定义函数,function_name 是函数的名称,parameters 是函数的参数列表,每个参数之间用逗号分隔,函数体包含在缩进块中。

函数的文档字符串是描述函数作用和用法的字符串,用于为函数添加文档说明,方便其他程序员理解和使用该函数。

函数体中的语句用于执行函数的逻辑操作,可以使用 return 语句返回函数执行结果。

函数调用

要调用一个函数,只需要使用函数名和参数列表即可。例如:

def greet(name):
    print(f"Hello, {name}!")

greet("world")

在上面的示例中,我们定义了一个简单的函数 greet,它接收一个字符串参数 name,然后将其打印出来。函数被调用时,传递了一个参数值 “world”,函数就会打印出 “Hello, world!”。

参数传递

Python支持四种类型的参数传递方式:位置参数、关键字参数、默认参数和可变参数。

位置参数

位置参数是指按照参数列表中的位置顺序传递参数的方式。

def add(x, y):
    return x + y

result = add(3, 4)
print(result) # 7

在上面的示例中,我们定义了一个接收两个参数的函数 add,然后调用它并将两个参数传递给它,然后将其打印出来。

关键字参数

关键字参数以 key=value 的形式传递,可以不按顺序传递参数。

def greet(name, greeting):
    print(f"{greeting}, {name}!")

greet(greeting="Hello", name="world") #Hello, world!

上面示例定义了一个函数greet(),其接收两个参数,分别是namegreeting,而在函数调用的时候,我们使用了关键字参数,将参数传递给函数,无论传递顺序如何,都能正常工作。

默认参数

默认参数是在函数定义时指定的,当函数调用时,如果没有传递该参数,则将使用默认值。

def greet(name, greeting="Hello"):
    print(f"{greeting}, {name}!")

greet("world") # Hello, world!

在上面的示例中,我们定义了一个接受两个参数的函数 greet,其中参数 greeting 被指定了默认值 “Hello”。在函数调用时,如果只传递了一个参数,函数会使用默认值来初始化 greeting

可变参数

可变参数是指接收可变数量参数的函数。

def add(*numbers):
    result = 0
    for num in numbers:
        result += num
    return result

print(add(1, 2)) # 3
print(add(1, 2, 3)) # 6

在上面的示例中,我们定义了一个名为 add 的函数,该函数使用 *args 格式的参数来接受任意数量的参数。然后,在函数内部,通过循环遍历参数,将它们相加到 result 变量中。

示例代码

下面是一些更复杂的函数定义和调用示例:

# 计算平均数的函数
def avg(*args):
    if len(args) == 0:
        return 0.0
    return sum(args) / len(args)

print(avg()) # 0.0
print(avg(1, 2, 3)) # 2.0
print(avg(10, 20, 30, 40, 50)) # 30.0


# 计算阶乘的函数
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

print(factorial(5)) # 120


# 将字符串转换为整数列表的函数
def str_to_int_list(string):
    lst = string.split()
    return [int(x) for x in lst]

print(str_to_int_list("1 2 3 4")) # [1, 2, 3, 4]

这些示例演示了 Python 函数的一些高级功能,例如默认参数、可变参数和递归函数。