🖥️ 计算机科学 2
第 43-48 关
🍕

多参数函数

Multi-parameter Functions

🔢 坐标控制
🛠️ 灵活定制
👩‍🍳

什么是多参数函数?

想象你是一个高级魔法厨师,现在要制作一个定制披萨

如果只有一个参数(比如大小),太单调了!
为了做出独一无二的美味,我们需要同时控制:
📏 尺寸 + 🍄 配料 + 🍅 酱料

"多参数函数就像做披萨:同时调整多个配方,创造出千变万化的效果!"
🍄
🍄
🍄
📏

参数顺序很重要!

在多参数函数中,参数的顺序决定了它们的含义。

def checkPoint(x, y):
  hero.moveXY(x, y)

checkPoint(10, 30)
口诀:
"多参数像排队,先来后到要记牢!
定义时什么顺序,调用时同样顺序!"
(x, y)
⬇️
(10, 30)
x=10, y=30
(30, 10) ❌
x=30, y=10 (位置错了!)
🗺️

实战 I:智能移动

我们需要定义一个函数,让英雄移动到指定坐标并检查敌人。

def checkPoint(x, y):
  hero.moveXY(x, y)
  enemy = hero.findNearestEnemy()
  if enemy:
    hero.attack(enemy)

while True:
  checkPoint(10, 30)
(0,0)
X
Y
👮‍♂️

实战 II:四位置巡逻

使用多参数函数,我们可以轻松设定复杂的巡逻路线。

while True:
  patrol(18, 34) # 左上
  patrol(40, 46) # 上中
  patrol(62, 34) # 右上
  patrol(40, 22) # 下中

一个函数 patrol(x,y) 搞定所有位置!

🏗️

代码复用 (Code Reuse)

没有多参数:
你需要写 moveLeft(), moveRight(), moveTop()...
每个位置都要写一个新函数,累死啦!
使用多参数:
只写一个 moveTo(x, y)
就像用通用的砖块(函数)和不同的设计图(参数)建造各种建筑!
🧱 + 📐 = 🏰

砖块 + 图纸 = 城堡

🎩

高级用法

1. 默认参数 (Default):
设一个默认值,如果不传参,就用默认的。

def move(speed=5): ...
move() # 速度5
move(10) # 速度10

2. 关键字参数 (Keyword):
按名字传参,不怕顺序乱!

create(name="Hero", job="Warrior")
🏷️
Tag: "Value"
🎓

大魔法师结业

"多参数像排队,
先来后到要记牢!"

"定义时什么顺序,
调用时同样顺序!"

🏆