📖 知识点
语法
def 函数名(形参1, 形参2):
# 函数内部使用形参变量
代码语句
# 调用:按位置依次传入实参
函数名(实参1, 实参2)
- 形参:定义函数时括号里的变量,只是占位符,函数未调用时没有真实数据
- 实参:调用函数时传入的真实数据
- 位置参数核心规则:按顺序一一匹配,第一个实参传给第一个形参,第二个实参传给第二个形参
- 数量必须严格一致:定义了 N 个形参,调用就必须传入 N 个实参,多传或少传都会直接报错
示例代码
def introduce(name, age):
print(f"姓名:{name},年龄:{age}")
# 位置传参:"小明"传给name,18传给age
introduce("小明", 18)
# 调换顺序,结果完全改变
introduce(18, "小明")
运行输出:
姓名:小明,年龄:18
姓名:18,年龄:小明
⚠️ 重点坑点:位置参数顺序非常重要,顺序错,逻辑就错!
🥋 Kata 实战任务
编写函数 rect_area(width, height) 需求:
- def 定义函数,两个形参 width(宽)、height(高)
- 函数内部计算长方形面积 = 宽 * 高
- 在函数内部打印:
长方形宽:XX,高:XX,面积:XX - 使用位置参数方式调用 2 次:
- 第一次传入:10,5
- 第二次传入:7,3
✅ 参考代码
def rect_area(width, height):
area = width * height
print(f"长方形宽:{width},高:{height},面积:{area}")
# 位置传参调用
rect_area(10, 5)
rect_area(7, 3)
运行输出:
长方形宽:10,高:5,面积:50
长方形宽:7,高:3,面积:21
🤔 思考题
- 如果调用
rect_area(10),只传 1 个实参,会发生什么? - 如果调用
rect_area(5,10,2),传入 3 个实参,会报错吗?为什么?