第 23 课 · 阶段四 · 函数与模块
函数的定义与调用
函数是代码复用的最小单元。这一课掌握函数的定义、调用、返回值与参数传递,把代码从“流水账”升级为“积木”。
🎯 学完本课你将掌握
- 定义并调用自己的函数
- 理解参数与返回值
- 写出有清晰职责的函数
一、为什么需要函数
同一段逻辑反复出现时,把它封装成函数:写一次、调 N 次、改一处全生效。函数让代码复用、清晰、易测试。
二、定义与调用
第一个函数.py
1def greet():2 print("你好,欢迎学习 Python!")34# 调用函数5greet()6greet()三、带参数的函数
带参数.py
1def greet(name):2 print(f"你好,{name}!")34greet("小明") # 你好,小明!5greet("小红") # 你好,小红!四、返回值 return
返回值.py
1def add(a, b):2 return a + b34result = add(3, 5)5print(result) # 86print(add(10, 20)) # 30✅ 要点
return 会立刻结束函数并把值交给调用处;没有 return 的函数返回 None。
五、参数按位置传入(位置参数)
位置参数.py
1def info(name, age, city):2 print(f"{name}今年{age}岁,住在{city}")34info("小明", 10, "广州") # 顺序必须一一对应六、综合案例:菜单计算器
函数版计算器.py
1def add(a, b): return a + b2def sub(a, b): return a - b3def mul(a, b): return a * b4def div(a, b): return a / b if b != 0 else "不能除以0"56x = float(input("第一个数:"))7y = float(input("第二个数:"))8op = input("运算符(+ - * /):")910if 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 返回结果。封装后代码可复用、可组合。下一课学参数的各种花式玩法。