Python的函数简介
Python是一种高级编程语言,具有易读、易维护、高效的特点,广泛应用于科学计算、数据分析、网络编程等方面。函数是Python中最基本的编程单元之一,它可以重复利用代码并且提高代码的可读性和维护性。下面我们就来简要介绍一下Python中的函数。
函数定义和调用
Python中定义函数使用关键字“def”,语法如下:
def function_name(parameters):
"function_docstring" # 函数文档字符串,可省略
# 函数体
return [expression] # 返回值,可省略
示例:
def add(a, b):
"""This function adds two numbers"""
return a + b
定义好函数后,可以通过传递参数来调用函数,示例:
result = add(2, 3) print(result)
函数参数
Python中的函数参数分为四种类型:位置参数、缺省参数、关键字参数和可变参数。
1. 位置参数
位置参数是最普通的参数类型,它是按照函数定义中的参数顺序进行传递,示例:
def add(a, b):
"""This function adds two numbers"""
return a + b
result = add(2, 3)
print(result)
2. 缺省参数
缺省参数是在函数定义时就已经确定了默认值,当调用时未传递参数或传入None时将使用默认值,示例:
def greet(name, message="Good morning!"):
"""This function greets to person with the provided message"""
print("Hello", name + ', ' + message)
greet("Kate") # 输出:Hello Kate, Good morning!
greet("Bruce", "How do you do?") # 输出:Hello Bruce, How do you do?
3. 关键字参数
关键字参数是根据参数名进行传递,与位置无关,可以不按照函数定义中的参数顺序进行传递,示例:
def greet(name, message="Good morning!"):
"""This function greets to person with the provided message"""
print("Hello", name + ', ' + message)
greet(message="How do you do?", name="Kate") # 输出:Hello Kate, How do you do?
4. 可变参数
可变参数可以接收任意数量的参数,分为两种类型:*args和**kwargs。
- *args: 用于传递非关键字变量长度的参数列表,示例:
def add(*args):
"""This function adds all numbers in *args"""
sum = 0
for arg in args:
sum += arg
return sum
result = add(1, 2, 3)
print(result) # 输出6
- **kwargs: 用于传递关键字变量长度的参数字典,示例:
def greet(**kwargs):
"""This function greets to person with the provided message"""
for key, value in kwargs.items():
print("{0} = {1}".format(key, value))
greet(name="Kate", message="How do you do?", age=27)
函数作用域
Python中函数的作用域分为两种类型:全局变量和局部变量。
全局变量定义在函数体外,可以被程序中的所有函数使用,示例:
count = 0
def show_count():
print(f"Count = {count}")
def set_count(c):
global count # 将变量count声明为全局变量
count = c
show_count() # 输出:Count = 0
set_count(5)
show_count() # 输出:Count = 5
局部变量定义在函数体内,只能在函数内部使用,示例:
def add(a, b):
c = a + b # 局部变量
return c
result = add(2, 3)
print(result)
函数递归
Python中的函数也可以调用自身,这种技术叫做函数递归。函数递归在解决某些具有递归性质的问题上非常方便,但需要注意控制递归深度,防止栈溢出或死循环,示例:
def factorial(n):
"""This function calculates the factorial of n"""
if n == 1:
return 1
else:
return n * factorial(n-1)
result = factorial(5)
print(result) # 输出120
函数装饰器
Python中的函数装饰器是一种特殊的函数,它可以包装其他函数,从而提供一些额外的功能,例如性能测试、事务处理等。函数装饰器需要加上“@decorator”语句,并且定义装饰器函数以及需要装饰的函数,示例:
def decorator(func):
def wrapper():
print("Before function execution.")
func()
print("After function execution.")
return wrapper
@decorator
def myfunc():
print("Function execution.")
myfunc()
输出:
Before function execution. Function execution. After function execution.
以上是Python中函数的简要介绍,函数是Python中最基本的编程单元之一,对于初学者而言,了解函数的定义、参数、作用域、递归、装饰器等知识点是非常有必要的。
