在编写 Python 程序时,你可能会发现有许多代码段需要重复使用。 如果每次都手动复制粘贴,不仅繁琐,而且难以维护。 这时,函数(Function)就能帮你把重复的逻辑封装成一个可复用的模块,让代码更加整洁、高效、易维护。
本节我们将详细讲解函数的定义方式、调用方法,以及一些常见的使用技巧。
一、什么是函数
函数(Function) 是一段可以重复调用的代码块,用于完成特定的功能。 它接受输入(参数),执行一定的逻辑处理,然后返回输出(结果)。
你可以把函数想象成一台机器:
- 输入原料(参数)
- 加工处理(函数体)
- 输出结果(返回值)
二、函数的定义语法
Python 使用 def 关键字定义函数,基本语法如下:
python
def 函数名(参数列表):
"""函数说明文档,可选"""
函数体
return 返回值
示例:
python
def greet(name):
"""问候函数,输出欢迎信息"""
return f"你好,{name},欢迎学习Python!"
三、函数的调用
定义完函数后,可以通过函数名来调用:
python
message = greet("小明")
print(message)
输出:
你好,小明,欢迎学习Python!
调用函数时,参数会传入函数体内部执行,并最终通过 return 语句返回结果。
四、函数参数详解
函数可以没有参数,也可以有多个参数:
1. 无参数函数
python
def say_hello():
print("Hello Python!")
say_hello()
2. 单参数函数
python
def square(x):
return x * x
print(square(5)) # 输出 25
3. 多参数函数
python
def add(a, b):
return a + b
print(add(3, 7)) # 输出 10
五、函数的返回值
使用 return 关键字可以返回计算结果:
python
def get_sum(a, b):
return a + b
result = get_sum(10, 20)
print(result) # 30
如果函数没有 return,默认返回 None。
python
def show():
print("执行中")
r = show()
print(r) # None
六、函数文档说明(Docstring)
给函数添加文档说明,是良好编程习惯之一:
python
def multiply(a, b):
"""返回两个数的乘积"""
return a * b
print(multiply.__doc__) # 输出函数说明
Docstring 方便团队协作,也能被 IDE 自动识别为函数说明。
七、函数的嵌套调用
函数内部也可以调用其他函数:
python
def add(a, b):
return a + b
def calc(a, b):
result = add(a, b)
print("计算结果:", result)
calc(2, 3)
输出:
makefile
计算结果: 5
八、函数的命名规范
遵循 Python 命名规范(PEP 8):
- 函数名应使用小写字母和下划线分隔,例如
get_user_info - 不建议使用中文命名或拼音命名
- 函数名应体现功能,如
print_data()、calculate_area()
九、实战案例:计算BMI指数
示例:
python
def calc_bmi(weight, height):
"""计算BMI指数"""
bmi = weight / (height ** 2)
return round(bmi, 2)
bmi_value = calc_bmi(65, 1.70)
print("你的BMI指数为:", bmi_value)
输出:
你的BMI指数为: 22.49
通过自定义函数,我们把"BMI计算"的逻辑封装起来,让代码更清晰、更易扩展。
十、总结
| 概念 | 说明 | 示例 |
|---|---|---|
| 函数定义 | 使用 def 定义函数 |
def func(): pass |
| 参数 | 传递输入数据 | def add(a, b) |
| 返回值 | 输出函数结果 | return x + y |
| 调用函数 | 执行函数 | func() |
| 文档字符串 | 函数说明 | """函数说明""" |
结语: 函数是 Python 编程的核心之一。 掌握函数定义与调用,意味着你已经踏出了编写高质量可复用代码的重要一步。