Python函数基础:定义函数和调用函数
Python函数是一段可重用的代码块,它包含了一组指令,可以在程序中被多次调用。函数可以接收参数和返回值。在Python中,函数通常用def关键字定义。
1. 定义函数
定义函数的一般语法如下:
def function_name(parameter1, parameter2, ...):
# 函数体
return value
其中,function_name是函数的名称,参数列表放在圆括号中,函数体是一组指令,可以是任何Python语句,return关键字用于返回函数的值。
下面是一个简单的例子,定义了一个求和函数,接收两个参数,并返回它们的和:
def add(x, y):
return x + y
可以通过参数列表调用函数,并将结果存储在变量中:
result = add(1, 2) print(result) # 输出3
2. 调用函数
定义好函数后,可以通过函数名和参数列表调用函数。
下面是一个简单的例子,调用了上面定义的add函数:
result = add(3, 4) print(result) # 输出7
当调用函数时,Python会将传递给函数的参数存储在形参中,执行函数的代码,然后返回结果。在上面的例子中,调用时传递的参数是3和4,函数返回它们的和7,然后将结果存储在result变量中,并输出7。
3. 参数传递
Python函数可以接收不同类型的参数,包括必需参数、默认参数、可变参数和关键字参数。
必需参数是必须传递给函数的参数,如果没有指定将抛出TypeError。默认参数是可以省略的参数,当没有传递参数时,函数使用默认值。可变参数可以接收不定数量的参数,可以是序列(如列表)或元组。关键字参数是以key=value的形式传递的参数,可用于指定可变参数的参数名称。
下面是一个包含各种参数类型的函数:
def func(param1, param2, param3='default', *args, **kwargs):
print('param1:', param1)
print('param2:', param2)
print('param3:', param3)
print('args:', args)
print('kwargs:', kwargs)
当调用这个函数时,可以传递不同类型的参数,如下所示:
func('a', 'b', 'c', 'd', 'e', key1='value1', key2='value2')
输出结果如下:
param1: a
param2: b
param3: c
args: ('d', 'e')
kwargs: {'key1': 'value1', 'key2': 'value2'}
由输出结果可以看出,必须传递的参数是param1和param2,如果没有传递将抛出TypeError。默认参数param3设置了一个默认值'default',如果没有指定将使用这个默认值。可变参数*args可以接收任意数量的位置参数,以元组的形式进行存储。关键字参数**kwargs可以接收任意数量的关键字参数,以字典的形式进行存储。
4. lambda函数
Python中有一种特殊的函数叫做lambda函数,它是一种匿名函数,不需要使用def关键字进行定义。lambda函数通常用于需要定义一些简单的函数,而不需要像def那样显式地命名函数。
lambda函数的一般语法如下:
lambda arguments : expression
其中,arguments指定函数的参数,expression指定函数的返回结果。下面是一个简单的例子,定义了一个lambda函数,计算两个数字的和:
add = lambda x, y : x + y
可以通过参数列表调用lambda函数:
result = add(3, 4) print(result) # 输出7
在这个例子中,定义了一个lambda函数,并将它赋值给变量add。这个函数接收两个参数x和y,计算它们的和并返回结果。可以通过传递两个参数调用这个函数,得到结果7。
