函数就像「代码的魔法工具箱」🧰,把常用的功能打包起来,随用随取。让我们用做奶茶的比喻来理解它~
一、函数是什么?
想象你开奶茶店:
- 原料(水果、牛奶)→ 输入参数
- 制作流程 → 函数内部的代码
- 成品奶茶 → 返回值
代码示例:
# 定义「做奶茶」函数
def make_milk_tea(tea_base, topping):
"""制作奶茶的函数"""
tea = f"{tea_base}奶茶+{topping}"
return tea
# 使用函数
my_tea = make_milk_tea("红茶", "珍珠")
print(my_tea) # 输出:红茶奶茶+珍珠
二、函数三要素
1️⃣ 函数定义
def 函数名(参数):
# 要做的事情
return 结果
2️⃣ 参数传递
# 位置参数(按顺序传)
make_milk_tea("绿茶", "布丁")
# 关键字参数(明确指定参数名)
make_milk_tea(topping="椰果", tea_base="乌龙茶")
3️⃣ 返回值
# 没有return语句 → 返回None
def show_menu():
print("1. 红茶 2. 绿茶")
# 返回多个值
def calculate(x, y):
return x+y, x*y
sum_result, product_result = calculate(3,4)
三、常见函数类型
1️⃣ 无参数函数
def ring_bell():
print("🔔 欢迎光临!")
ring_bell() # 直接调用
2️⃣ 带默认参数
# 默认做原味奶茶
def order_tea(topping="原味"):
return f"您的{topping}奶茶"
print(order_tea()) # 输出:您的原味奶茶
print(order_tea("芋圆")) # 输出:您的芋圆奶茶
3️⃣ 帮助函数(文档字符串)
def add_points(a, b):
"""
计算积分总和
参数:
a: 当前积分
b: 新增积分
返回:
总积分
"""
return a + b
# 查看说明文档
help(add_points)
四、变量作用域
global_money = 100 # 全局变量(整个程序可用)
def buy(price):
local_money = 50 # 局部变量(只在函数内有效)
global_money -= price # 修改全局变量需要声明
print(f"剩余:{global_money}元")
buy(30) # 输出:剩余:70元
# print(local_money) # 这里会报错!
五、避坑指南
1️⃣ 参数传递易错点
# ❌ 错误:少传参数
make_milk_tea("红茶") # 缺少topping参数
# ✅ 正确:设置默认值
def make_milk_tea(tea_base, topping="珍珠"):
# ...
2️⃣ 修改列表参数
def add_topping(order_list):
order_list.append("椰果") # 会修改原始列表!
my_order = ["红茶"]
add_topping(my_order)
print(my_order) # ["红茶", "椰果"]
六、综合练习:奶茶点单系统
def create_order():
"""收集订单信息"""
tea = input("请选择茶底(红茶/绿茶/乌龙):")
topping = input("请选择加料(珍珠/芋圆/布丁):")
return tea, topping
def make_tea(tea, topping):
"""制作奶茶"""
print(f"正在制作:{tea}奶茶")
print(f"添加{topping}...")
return f"{tea}奶茶+{topping}"
def show_receipt(drink, price=15):
"""显示收据"""
print("\n=== 您的订单 ===")
print(f"饮品:{drink}")
print(f"金额:{price}元")
# 主程序
selected_tea, selected_topping = create_order()
final_drink = make_tea(selected_tea, selected_topping)
show_receipt(final_drink)
运行效果:
请选择茶底(红茶/绿茶/乌龙):乌龙
请选择加料(珍珠/芋圆/布丁):布丁
正在制作:乌龙奶茶
添加布丁...
=== 您的订单 ===
饮品:乌龙奶茶+布丁
金额:15元
函数口诀:
先定义,后使用
参数传递要对应
返回结果别忘记
变量作用分清晰
现在你也能创造自己的代码魔法啦!✨
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于