第 23 课 · 阶段四 · 函数与模块

函数的定义与调用

函数是代码复用的最小单元。这一课掌握函数的定义、调用、返回值与参数传递,把代码从“流水账”升级为“积木”。

第 23 课阶段四 · 函数与模块难度:入门建议时长:35 分钟关键词:def · return · 参数 · 调用

🎯 学完本课你将掌握

  • 定义并调用自己的函数
  • 理解参数与返回值
  • 写出有清晰职责的函数

一、为什么需要函数

同一段逻辑反复出现时,把它封装成函数:写一次、调 N 次、改一处全生效。函数让代码复用、清晰、易测试

二、定义与调用

第一个函数.py
1def greet():
2 print("你好,欢迎学习 Python!")
3
4# 调用函数
5greet()
6greet()

三、带参数的函数

带参数.py
1def greet(name):
2 print(f"你好,{name}!")
3
4greet("小明") # 你好,小明!
5greet("小红") # 你好,小红!

四、返回值 return

返回值.py
1def add(a, b):
2 return a + b
3
4result = add(3, 5)
5print(result) # 8
6print(add(10, 20)) # 30
✅ 要点
return 会立刻结束函数并把值交给调用处;没有 return 的函数返回 None。

五、参数按位置传入(位置参数)

位置参数.py
1def info(name, age, city):
2 print(f"{name}今年{age}岁,住在{city}")
3
4info("小明", 10, "广州") # 顺序必须一一对应

六、综合案例:菜单计算器

函数版计算器.py
1def add(a, b): return a + b
2def sub(a, b): return a - b
3def mul(a, b): return a * b
4def div(a, b): return a / b if b != 0 else "不能除以0"
5
6x = float(input("第一个数:"))
7y = float(input("第二个数:"))
8op = input("运算符(+ - * /):")
9
10if op == "+":
11 print(add(x, y))
12elif op == "-":
13 print(sub(x, y))
14elif op == "*":
15 print(mul(x, y))
16elif op == "/":
17 print(div(x, y))
18else:
19 print("未知运算符")

七、常见错误与解决

常见错误与解决

错误现象原因 / 解决方法
NameError: name 'xxx' is not defined函数名拼错,或调用了还没定义的函数(定义在前调用在后)。
忘记 return 拿到 None函数里只 print 没 return,外面接到的就是 None;需要结果就写 return。
参数数量对不上TypeError: 缺少必需的位置参数,检查实参个数与形参一致。
✍️ 小练习
写一个 max3(a,b,c) 函数返回三个数中的最大值;再写一个 is_even(n) 返回 n 是否为偶数。
📌 本节小结
函数三要素:def 定义、参数接收输入、return 返回结果。封装后代码可复用、可组合。下一课学参数的各种花式玩法。