【基础】Python中的函数定义与调用方法
发布时间: 2024-06-24 11:10:13 阅读量: 80 订阅数: 107
![【基础】Python中的函数定义与调用方法](https://img-blog.csdnimg.cn/d3e792738a9b4efea3d939f33d70a004.png)
# 1. Python函数基础**
函数是Python中封装代码块并赋予其名称的强大工具。它们允许将代码组织成可重用的模块,从而提高代码的可读性、可维护性和可扩展性。
函数由一个名称、一个参数列表和一个代码块组成。函数名称用于标识函数,参数列表指定函数接收的参数,而代码块包含函数执行的指令。
定义函数的语法如下:
```python
def 函数名称(参数1, 参数2, ...):
"""函数文档字符串"""
# 函数代码块
```
# 2. 函数定义与调用
### 2.1 函数定义的语法和组成
Python 中的函数定义使用 `def` 关键字,其语法如下:
```python
def 函数名(参数列表):
函数体
```
其中:
* `函数名`:函数的名称,遵循 Python 变量命名规则。
* `参数列表`:可选,指定函数接受的参数,每个参数用逗号分隔。
* `函数体`:函数执行的代码块,以缩进来表示。
例如,定义一个计算两个数和的函数:
```python
def add(a, b):
return a + b
```
### 2.2 函数调用的机制和参数传递
函数调用通过函数名后跟圆括号内的实参列表来实现。实参列表中的值将按顺序传递给函数的参数。
Python 中采用传值调用机制,即函数调用时,实参的值会复制一份传递给函数,函数内部对参数的修改不会影响实参。
例如,调用 `add` 函数计算 1 和 2 的和:
```python
result = add(1, 2)
print(result) # 输出 3
```
**参数传递方式**
Python 中支持两种参数传递方式:
* **位置参数:**按顺序传递给函数的参数,必须与函数定义中的参数一一对应。
* **关键字参数:**通过参数名和值的形式传递给函数,可以任意顺序传递。
例如,`add` 函数可以如下调用:
```python
# 位置参数
add(1, 2)
# 关键字参数
add(b=2, a=1)
```
**默认参数值**
函数参数可以设置默认值,当调用函数时不指定该参数时,将使用默认值。
例如,定义一个带有默认参数的 `max` 函数:
```python
def max(a, b, c=0):
if a > b and a > c:
return a
elif b > a and b > c:
return b
else:
return c
```
调用 `max` 函数时,可以省略第三个参数,将使用默认值 0:
```python
max(1, 2) # 返回 2
max(1, 2, 3) # 返回 3
```
**可变参数**
Python 中可以使用 `*args` 和 `**kwargs` 来接收可变数量的参数。
* `*args`:接收任意数量的位置参数,并将其打包为一个元组。
* `**kwargs`:接收任意数量的关键字参数,并将其打包为一个字典。
例如,定义一个可变参数函数 `print_args`:
```python
def print_args(*args, **kwargs):
print("位置参数:", args)
print("关键字参数:", kwargs)
```
调用 `print_args` 函数时,可以传递任意数量的参数:
```python
print_args(1, 2, 3, a=4, b=5)
```
输出:
```
位置参数: (1, 2, 3)
关键字参数: {'a': 4, 'b': 5}
```
# 3.1 函数的嵌套和递归
#### 嵌套函数
嵌套函数是指在函数内部定义另一个函数。内层函数可以访问外层函数的局部变量,但外层函数无法访问内层函数的局部变量。
**语法:**
```p
```
0
0