Python函数:如何定义和调用函数?
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 关键字,然后在必要时添加一个或多个参数以及函数体。函数被调用时,参数值将作为输入传递给函数体。函数可以返回任何类型的值,包括数字、字符串、列表、元组、字典、对象等。全局变量通常在所有函数中都可用,而局部变量只能在函数内部使用。
