Coding for KidsCoding for Kids
创意关卡挑战教师指南
为功能投票
高级 Python 开发课程
第 章
>
第 级

高级函数
嵌套函数

目标

通过使用嵌套函数收集、重新分配并存放机器生产的布料。

有时你可能希望把函数嵌入到其他函数中,以扩展该函数的功能。这些函数被称为 嵌套函数 或内部函数,它们有多种用途,从创建函数内部的简单可重用代码,到保护你的函数免受外部干扰。

在工作间内有几台制布机,有的机器前放有已经准备好存储的布料,而其他的则需要穿线以完成布料的生产。每台机器前都有一块放在地上的 "red""green" 地毯,它将指示该机器的用途。在代码编辑器中,将编写一个函数来操控机器,并从机器上收取或放置材料。

def operate_machine(color): def collect_cloth(): # Collect Code player.speak("Cloth is ready for storage") def place_thread(): # Place Code player.speak("Machine needed more materials") if color == "green": collect_cloth() if color == "red": place_thread()

该函数名为 operate_machine,并接受一个名为 color 的参数。根据机器前面地毯的颜色,在传入参数时输入 "red""green" 将改变机器的操作,从而允许你放置或收取物品。

在该函数内,你会看到两个 嵌套函数,分别命名为 collect_cloth()place_thread(),它们的用途正如其名称所示。目前它们缺少完成各自操作所需的代码行,在 collect_cloth() 中添加代码行 player.collect("cloth"),然后是 player.speak("Quilt is ready for storage");在 place_thread() 中添加代码行 player.place("thread"),然后是 player.speak("Machine needed more materials")

添加好缺失的代码行到 嵌套函数 后,走到箱子前面标有明亮 X 的地方并收集 "thread" 以供机器使用,方法如下:player.collect("thread")

接着走向工作间内标有深色 X 的地方,并在面向机器时使用自定义函数 operate_machine,根据 X 标所在位置的地毯颜色添加 "red""green" 作为参数,例如:operate_machine("red")。这将允许你放置线并收取布料。

当你收集完所有布料后,走到后方箱子旁边标有金色 X 的地方,并使用 place() 函数存放布料。创建一个名为 cloths 的变量,将你收集的布料数量赋值给它,并存放到箱子中以完成该关卡,例如:player.place(cloths)

代码书