第5章:函数
5.1 函数的定义和调用
函数是一段可重用的代码块,用于执行特定的任务。在Python中,使用 def 关键字定义函数。
# 定义函数
def greet():
print("Hello, welcome to Python!")
# 调用函数
greet()
# 带参数的函数
def greet_name(name):
print(f"Hello, {name}!")
# 调用带参数的函数
greet_name("Tina")
# 带返回值的函数
def add(a, b):
return a + b
# 调用带返回值的函数
result = add(3, 5)
print(result)
5.2 函数参数
Python函数支持多种类型的参数:
5.2.1 位置参数
def calculate_area(length, width):
return length * width
area = calculate_area(5, 3)
print(area)
5.2.2 默认参数
def calculate_area(length, width=2):
return length * width
# 使用默认参数
area1 = calculate_area(5) # width使用默认值2
print(area1)
# 覆盖默认参数
area2 = calculate_area(5, 4) # width使用值4
print(area2)
5.2.3 关键字参数
def calculate_area(length, width):
return length * width
# 使用关键字参数
area = calculate_area(width=3, length=5)
print(area)
5.2.4 可变参数
# 可变位置参数(*args)
def sum_numbers(*args):
total = 0
for num in args:
total += num
return total
result = sum_numbers(1, 2, 3, 4, 5)
print(result)
# 可变关键字参数(**kwargs)
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Tina", age=18, major="商务数据分析与应用")
5.3 函数的返回值
函数可以使用 return 语句返回一个或多个值:
# 返回单个值
def calculate_area(length, width):
return length * width
# 返回多个值
def calculate_rectangle(length, width):
area = length * width
perimeter = 2 * (length + width)
return area, perimeter
# 接收多个返回值
area, perimeter = calculate_rectangle(5, 3)
print(f"面积: {area}, 周长: {perimeter}")
5.4 局部变量和全局变量
在函数内部定义的变量是局部变量,只在函数内部有效。在函数外部定义的变量是全局变量,可以在整个程序中使用。
# 全局变量
global_var = "全局变量"
def test_function():
# 局部变量
local_var = "局部变量"
print(local_var)
print(global_var)
test_function()
print(global_var)
# print(local_var) # 这会引发错误,因为local_var是局部变量
注意事项
如果需要在函数内部修改全局变量,需要使用 global 关键字声明:
global_var = 10
def modify_global():
global global_var
global_var = 20
print(global_var) # 输出 10
modify_global()
print(global_var) # 输出 20
5.5 商务数据分析中的应用示例
下面是一个使用函数的实际应用示例,用于分析销售数据:
代码运行器
函数设计建议
- 函数应该有清晰的功能和命名
- 函数应该保持简洁,只做一件事情
- 使用文档字符串(docstring)来描述函数的功能
- 合理使用参数和返回值
- 避免在函数内部修改全局变量