Python 函数 — 代码的积木块

2026年05月22日 19:20

Python 函数 — 代码的积木块

Python 函数 — 代码的积木块

学会定义和调用函数,让你的代码像搭积木一样灵活复用

向下滚动开始
函数是什么(榨汁机比喻)定义与调用
参数的类型与顺序位置参数 · 默认参数
返回值与终止单值 · 多值 · None
调用流程传参 → 执行 → 返回
综合练习独立编写函数
1

函数初体验 — 制造你的第一台机器

💡 函数就像一台自动榨汁机:你把水果(参数)从投料口塞进去,机器内部处理(函数体),最后流出果汁(返回值)。定义函数就是制造这台机器,调用就是按下开关。
def add(a, b):
    return a + b

result = add(3, 5)
print(result)  # 输出: 8

动手试试

参数 a: 参数 b:
2

参数道场 — 顺序与默认值

💡 参数是贴了标签的投料口。位置参数要求按顺序放料,放错顺序就会做出黑暗料理。默认参数就像"如果你不放糖,我默认加一勺"。
位置参数 — 顺序很重要
def describe_pet(name, animal_type):
    return f"我的宠物叫{name},是一只{animal_type}"
name: animal_type:
默认参数 — 不传就用默认值
def greet(name, greeting="你好"):
    return f"{greeting}{name}!"
name: greeting:
3

返回值的奥秘 — 归来与终止

💡 return 是快递员:他把包裹(返回值)送到你手上,然后立马下班,后面的事情都不管。如果没有 return,你就收到一个空盒子(None)。

单值返回

def square(x):
    return x * x
x =

多值返回(本质是元组)

def stats(a, b):
    return a + b, a - b, a * b
a = b =

return 终止函数

def test():
    return "结束"
    print("这行不会执行")

无 return → 返回 None

def say_hello():
    print("你好")

result = say_hello()
4

函数穿梭机 — 调用流程分步演示

💡 程序遇到函数调用时,会带着实参"跳"进函数,把值交给形参,执行完再带着返回值"跳"出来。就像火车分出一条支线,装货、加工、再回到主线。
主程序
result = multiply(4, 5)
print(result)
函数定义
def multiply(x, y):
    return x * y
点击步骤按钮,观察函数调用的完整流程
5

函数工坊 — 你的独立创作

💡 现在你就是函数设计师!根据需求编写函数,通过测试即可获得徽章。注意使用 4 个空格缩进。
任务1(★☆☆):判断偶数
补全函数 is_even(num),当 num 是偶数时返回 True,否则返回 False

小测验

以下哪个是正确调用函数 def greet(name): 的方式?
关于位置参数,下列说法正确的是?
如果一个函数没有 return 语句,调用它得到什么?
函数 def compute(): return 1, 2 的返回值类型是?
关于默认参数,以下定义哪个是合法的?
Python 函数互动教学 — 代码的积木块
恭喜通过!
你已掌握函数的基础用法

榨汁机图解

┌─────────────────────────────┐ │ 定义函数 = 制造榨汁机 │ │ │ │ 水果 ──→ ┌───────────┐ │ │ (参数) │ 榨汁机 │──→ 果汁 │ │ a, b │ (函数体) │ (返回值)│ │ └───────────┘ │ │ ↑ │ │ return a + b │ └─────────────────────────────┘ 生活中的例子: def make_juice(fruit, sugar): juice = 榨汁 juice = 加糖 return juice # 出杯! 调用:make_juice("苹果", "一勺") 结果:一杯加了糖的苹果汁

定义函数时,机器并不会运转。只有当你调用它时(按下开关),代码才会真正执行。

点餐类比:位置参数

想象你在咖啡店点单,店员按固定顺序问你:

  • 第一个问题:杯型?→ order("大杯", ...)
  • 第二个问题:饮品?→ order(..., "拿铁")

如果你回答 order("拿铁", "大杯"),店员会理解成"杯型=拿铁,饮品=大杯"——顺序错了就乱套了!

默认参数就像菜单上的备注:"冰量默认为正常冰,如果不说就按正常来"。

def order(size, drink, ice="正常冰"): ... order("大杯", "拿铁") # 冰量 = 正常冰(默认) order("大杯", "拿铁", "少冰") # 冰量 = 少冰(你指定了)

快递员的故事

把函数想象成一个快递站:

  • return 就是快递员,他拿着包裹(返回值)出发
  • 快递员出发后,后面的代码他不会再看了——因为他已经离开了!
  • 如果没有安排快递员(没有 return),收件人收到的是空盒子None
def deliver(): pack("礼物") # 打包 return "礼物" # 快递员出发! pack("另一份") # ← 快递员已经走了,这行没人执行 print("确认送达") # ← 同样没人执行 result = deliver() # 收到 "礼物" def empty_deliver(): pack("东西") # 打包了... # 没有快递员! # 收件人收到空盒子 result = empty_deliver() # 收到 None

print ≠ return:print 只是在屏幕上显示文字(相当于在快递站里喊了一嗓子),并不会把东西递给收件人。