定义与调用函数
函数是编程中的一个重要概念,它是一组可以重复使用的代码块。通过函数,我们可以将代码分成一个个模块,每个模块完成一个特定的任务,这样程序会更加清晰、简洁,也便于维护。
1. 什么是函数?
- 定义函数:用来将一段代码封装起来并命名,方便重复使用。
- 调用函数:在需要时运行这个封装的代码。
你可以把函数想象成一个“工具”,当需要这个工具时,只需调用它,而不必每次都重新造一个。
2. 定义函数
语法
def 函数名(参数列表):
函数体
return 返回值 # 可选
def
:表示定义一个函数。- 函数名:用来标识这个函数。建议用有意义的名字,例如
calculate_area
表示“计算面积”。 - 参数列表:函数接受的数据输入,用括号包裹,多个参数用逗号分隔。如果不需要参数,可以留空。
- 函数体:缩进的代码块,表示函数的具体实现。
return
:将函数的结果返回给调用方。
简单示例
def say_hello():
print("你好,欢迎学习 Python!")
3. 调用函数
定义了函数之后,就可以调用它了。调用函数的方式是通过写出函数名并传入参数(如果需要)。
示例
def say_hello():
print("你好,欢迎学习 Python!")
# 调用函数
say_hello()
输出:
你好,欢迎学习 Python!
4. 函数的参数
函数可以通过参数接收外部输入,让它变得更加灵活。
位置参数
位置参数是按顺序传递的,调用函数时必须提供。
def greet(name):
print(f"你好,{name}!")
greet("小明")
输出:
你好,小明!
默认参数
给参数设置一个默认值,在调用函数时可以选择性地传递。
def greet(name="朋友"):
print(f"你好,{name}!")
greet() # 使用默认值
greet("小红") # 传递自定义值
输出:
你好,朋友!
你好,小红!
可变参数
用 *args
表示可以接收任意数量的位置参数,用 **kwargs
表示可以接收任意数量的关键字参数。
def add_numbers(*args):
print("传入的数字:", args)
print("总和:", sum(args))
add_numbers(1, 2, 3, 4)
输出:
传入的数字: (1, 2, 3, 4)
总和: 10
5. 返回值
函数可以通过 return
将结果返回给调用者。如果没有 return
,函数会默认返回 None
。
示例:计算两数之和
def add(a, b):
return a + b
result = add(5, 3)
print(f"5 和 3 的和是:{result}")
输出:
5 和 3 的和是:8
示例:多返回值
def calculate(a, b):
return a + b, a * b
sum_result, product_result = calculate(4, 5)
print(f"和:{sum_result}, 积:{product_result}")
输出:
和:9, 积:20
6. 函数的好处
- 代码复用:相同的代码只需写一次,想用的时候调用即可。
- 提高可读性:通过函数名表达功能,让代码更易读懂。
- 便于维护:问题只需修复函数中的代码,而不需在多个地方修改。
7. 综合示例
计算圆的面积
import math
def calculate_circle_area(radius):
"""计算圆的面积"""
if radius < 0:
return "半径不能为负数!"
return math.pi * radius ** 2
radius = float(input("请输入圆的半径:"))
area = calculate_circle_area(radius)
print(f"圆的面积是:{area}")
运行示例:
请输入圆的半径:5
圆的面积是:78.53981633974483
8. 注意事项
- 函数名:建议使用描述性强的名字,并用小写字母,单词之间用下划线分隔(如
calculate_area
)。 - 注释:可以在函数内加注释,说明它的功能,方便他人阅读。
- 参数顺序:位置参数必须在关键字参数之前,默认参数必须放在最后。
总结
- 函数定义:用
def
声明,封装逻辑,便于复用。 - 函数调用:按需调用,并传递必要的参数。
- 参数与返回值:通过参数传递数据,
return
返回结果。
通过函数,你的代码会更加简洁高效,执行任务也更灵活!