函数是一段完成特定任务的可复用代码。它接受输入(参数),并返回输出结果。在Python中,函数通过使用def关键字进行定义。
一、函数定义与调用
1、函数定义:在Python中,我们使用def关键字来定义一个函数。函数可以拥有一个函数名,用于标识和调用该函数。函数名的命名规则与变量命名相同。
def function_name(parameter1, parameter2):
# 函数体
return result
2、函数调用:为了使用函数,我们需要调用它。调用函数时,我们需要提供函数名和相应的参数值。
result = function_name(argument1, argument2)
二、参数传递
函数可以接受任意数量的参数,并且可以返回任意数量的值。在Python中,参数传递有以下几种方式:
1、位置参数:通过位置顺序来匹配参数和参数值。
def greet(name, age):
return "Hello, " + name + "! You are " + str(age) + " years old."
greet("Alice", 25)
2、关键字参数:通过参数名来匹配参数和参数值。
def greet(name, age):
return "Hello, " + name + "! You are " + str(age) + " years old."
greet(name="Alice", age=25)
3、默认参数:为参数指定默认值,当没有提供对应参数值时,将使用默认值。
def greet(name, age=30):
return "Hello, " + name + "! You are " + str(age) + " years old."
greet("Alice") # 默认使用age=30
4、可变长参数:接受任意数量的参数,可以是位置参数或关键字参数。
def greet(*names):
result = ""
for name in names:
result += "Hello, " + name + "!"
return result
greet("Alice", "Bob")
三、函数的返回值
函数可以通过return语句来返回一个值或多个值。如果没有return语句,函数默认返回None。
def add(a, b):
return a + b
result = add(3, 5)
四、局部变量与全局变量
局部变量是在函数内部定义的变量,只在函数内部可见。全局变量是在函数外部定义的变量,在整个程序中可见。
global_var = 10
def add(a, b):
local_var = a + b
return local_var + global_var
result = add(3, 5)
五、匿名函数
匿名函数也称为lambda函数,是一种没有函数名的函数。它可以接受任意数量的参数,但只能返回一个表达式的值。
square = lambda x: x**2
result = square(5)
六、递归函数
递归函数是一种在函数体内部调用自身的函数。递归函数可以解决一些需要反复调用自身的问题。
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
result = factorial(5)
七、高阶函数
高阶函数是指可以接受函数作为参数或返回函数的函数。在Python中,函数可以看作是对象,可以像传递其他数据类型一样传递函数。
def apply_func(func, x):
return func(x)
def square(x):
return x**2
result = apply_func(square, 5)
八、总结
函数是Python中重要的编程概念之一,它提供了代码复用的机制。函数可以通过参数传递和返回值来实现输入和输出。对于复杂的问题,我们可以通过定义和调用多个函数来实现模块化和可读性更强的代码。