欢迎访问宙启技术站
智能推送

Python函数:如何定义和调用函数?

发布时间:2023-06-15 23:53:51

Python中函数是一个非常基本的概念。函数是一种可重用代码块的方式,它接受一些输入参数,并且返回一个结果。如果你需要多次执行相同的处理步骤,你可以定义这个步骤为一个函数,并提供函数的输入参数。然后通过调用函数,来让这个函数执行这些处理步骤,最终得到结果。

函数的定义

要定义一个函数,请使用 def 关键字:

    def function_name(parameter1, parameter2):

        # Function body

在函数定义中,function_name 是新定义函数的名称,而参数 parameter1 和 parameter2 是输入参数。函数体必须是缩进的,这通常是使用 4 个空格来完成的。

函数的调用

要调用函数,只需要提供参数,并将其传递给函数名称:

    function_name(value1, value2)

value1 和 value2 是参数的实际值。当函数被调用时,参数值将被传递给函数体中相应的参数。

实际应用场景

让我们看一个例子:我们需要编写一个函数 calc,计算两数之差。在这个例子中,参数 a 和 b 表示两个要计算的数字的值。

    def calc(a, b):

        return a - b

我们可以使用 calc 函数来计算两数之差。只需要把要计算的两个数字传递给这个函数即可:

    result = calc(10, 3)

    print(result)  # 7

在这个例子中,我们将 10 和 3 作为参数传递给 calc 函数。该函数返回结果 7。我们将此结果存储在 result 变量中,然后将其打印到控制台上。

现在我们已经介绍了 Python 函数的基本概念,例如如何定义和调用函数。让我们来看看一些更高级的函数概念。

函数参数

函数可以有任意数量的参数,包括位置参数、关键字参数和默认参数。

位置参数

位置参数是按照参数的位置进行传递的。在之前的 calc 函数中,a 是 个位置参数,b 是第二个位置参数。

    def calc(a, b):

        return a - b

关键字参数

关键字参数是通过名称进行传递的参数。在这种情况下,我们使用参数名称来指定要传递给函数的值。在 Python 中,关键字参数使用名称=值的语法。

    def multiply(a, b):

        return a * b

    result = multiply(b=2, a=4)

    print(result)  # 8

在这个例子中,我们使用了关键字参数来调用 multiply 函数,并且指定参数名称 b 和 a 的值。我们将2赋值给参数 b,将4赋值给参数 a。multiply 函数返回的结果是 8。

默认参数

默认参数是一种特殊的参数类型,如果用户没有提供任何值,则将使用默认值。在 Python 中,默认参数使用名称=值的语法。

    def calc(a, b=4):

        return a - b

在这个例子中,参数 a 必须提供一个值,但是如果没有提供参数 b,则 b 的默认值为 4。

    result = calc(10)

    print(result)  # 6

当我们使用 calc(10) 时,a 的值为 10,而 b 的值则为默认值 4。函数返回 6。

函数返回值

在之前的例子中,我们已经看到如何从函数中返回值。在 Python 中,我们使用 return 语句来返回一个函数的结果。

    def multiply(a, b):

        return a * b

在这个例子中,multiply 函数会返回两个输入参数 a 和 b 的乘积。当该函数被调用时,它会返回一个结果。

    result = multiply(5, 3)

    print(result)  # 15

在这个例子中,我们调用 multiply 函数,并将 5 和 3 作为参数传递给该函数。这个函数返回的结果是 15。

在 Python 中,函数可以返回任何类型的值,包括数字、字符串、列表、元组、字典、对象等等。

全局变量和局部变量

在函数中,我们可以使用全局变量和局部变量。

全局变量

全局变量是定义在函数外部的变量,它们通常在所有函数中都是可用的。

    pizza = "Delicious!"

    def order_pizza():

        print(pizza)

    order_pizza()  # Delicious!

在这个例子中,pizza 是一个全局变量,可以在 order_pizza 函数内部使用。当函数被调用时,它会打印 "Delicious!"。

局部变量

局部变量而另一方面是只能在函数内部使用的变量。

    def order_pizza():

        pizza = "Delicious!"

        print(pizza)

    order_pizza()  # Delicious!

在这个例子中,pizza 是在函数内定义的变量,它只能在 order_pizza 函数内部使用。当函数被调用时,它会打印 "Delicious!"。

由于局部变量只能在函数内部使用,如果我们尝试在函数外部使用该变量,则会抛出 NameError。

    def order_pizza():

        pizza = "Delicious!"

    print(pizza)  # NameError: name 'pizza' is not defined

总结

在 Python 中,函数是一种可重用代码块,可以接受输入参数并返回结果。要定义函数,请使用 def 关键字,然后在必要时添加一个或多个参数以及函数体。函数被调用时,参数值将作为输入传递给函数体。函数可以返回任何类型的值,包括数字、字符串、列表、元组、字典、对象等。全局变量通常在所有函数中都可用,而局部变量只能在函数内部使用。