内功篇-Day32 函数的参数(位置参数)

0 次阅读 2026-10-18 20:41

📖 知识点

语法

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) 需求:

  1. def 定义函数,两个形参 width(宽)、height(高)
  2. 函数内部计算长方形面积 = 宽 * 高
  3. 在函数内部打印:长方形宽:XX,高:XX,面积:XX
  4. 使用位置参数方式调用 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

🤔 思考题

  1. 如果调用 rect_area(10),只传 1 个实参,会发生什么?
  2. 如果调用 rect_area(5,10,2),传入 3 个实参,会报错吗?为什么?