在Python中,函数是一种组织好的、可重复使用的代码块,用于实现单一或相关联的功能。以下是使用Python函数的基本步骤和语法:
定义函数
使用`def`关键字定义函数,后跟函数名称和圆括号`()`。圆括号内可以包含参数,参数可以有默认值。函数体以冒号`:`开始,并以缩进表示。
```python
def function_name(parameters):
函数体
return [expression]
调用函数
使用函数名称后跟圆括号`()`来调用函数,圆括号内可以传递参数。
```python
result = function_name(arguments)
示例
下面是一个简单的函数定义和调用的例子:
```python
定义一个函数,接受一个参数并返回它的平方
def square(x):
return x * x
调用函数并打印结果
print(square(5)) 输出:25
参数类型
必备参数:调用函数时必须提供的参数值。
默认参数:在定义函数时给参数一个默认值,调用时可以不传该参数。
不定长参数:允许函数接受比定义时更多的参数,有两种形式:
`*args`:接受任意数量的位置参数,以元组形式接收。
` kwargs`:接受任意数量的关键字参数,以字典形式接收。
调用函数的方式
顺序传值:按照函数定义的顺序传入参数值。
关键字传值:按照`参数名=值`的格式传入参数值。
示例(带参数)
```python
定义一个函数,接受两个参数并返回它们的和
def add(a, b):
return a + b
调用函数并打印结果
print(add(3, 5)) 输出:8
使用关键字传值
print(add(b=3, a=5)) 输出:8
高级用法
匿名函数(lambda):使用`lambda`关键字定义简洁的单行函数。
高阶函数:接受函数作为参数或返回函数的函数。
闭包:函数引用了外部变量,具有记忆功能。
生成器:使用`yield`关键字返回值,按需生成序列。
装饰器:使用`@`符号标记,用于修改或增强函数行为。
递归:函数在其定义中直接或间接调用自身。
示例(匿名函数)
```python
使用lambda定义一个匿名函数,计算两个数的和
sum = lambda a, b: a + b
调用匿名函数并打印结果
print(sum(3, 5)) 输出:8
示例(装饰器)
```python
定义一个装饰器,用于打印函数执行时间
import time
def timer_decorator(func):
def wrapper(*args, kwargs):
start_time = time.time()
result = func(*args, kwargs)
end_time = time.time()
print(f"Function {func.__name__} took {end_time - start_time} seconds to execute.")
return result
return wrapper
使用装饰器
@timer_decorator
def slow_function():
time.sleep(2)
调用装饰过的函数并打印执行时间
slow_function()
以上是Python函数的基本使用方法和一些高级用法。