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

异步/等待
设置问题

目标

收集各种厨房材料,并通过设置“问题”为烹饪做准备

有各种厨房和食品材料需要预设并准备,以便后续使用和食用。为此,你可以设置一个 question(),这是一个类似于 write()async 函数,但它不是显示静态消息,而是显示带有 “Yes”“No” 选项的问题。

要设置 question() 函数,你还必须设置一个自定义函数来处理条件。这个函数必须在开头写上 async,以表示它是一个 async 函数。在函数内部,question() 被存储在一个变量中,并且该函数前面写有 await,就像其他 async 函数一样。作为参数,question() 接受一个包含你将要提问问题的字符串。

async def question_function(): answer = await player.question("Question you would like to ask") if answer: # Actions to take if answer is Yes else: # Actions to take if answer is No

在这个函数内部,你会使用 if 语句来确定在答案为 True 或 False 时应采取的相应操作。自定义的 question 函数将在代码编辑器中设置,并允许你从单一来源收集和/或放置多个物品。

需要在厨房中准备的物品有:"water""ice""meat""potato"。这些物品需要被收集并放置在厨房的不同区域。"ice" 需要被放入冰柜中,"water" 应该被放入锅中,而 "meat""potato" 则需要放在不同的烤箱中。

首先,走向右侧房间中带有金色 X 标记的位置,并使用代码编辑器中概述的自定义函数 await dispencer()。面对冰箱,使用该函数两次(2 次)。它会提出一个问题,你必须回答 Yescollect() "ice",并回答 Nocollect() "water"

一旦你收集了这两样物品,走向你旁边冰柜前的黑色 X 标记,然后使用 place() 函数将 "ice" 放入冰柜中,如:player.place("ice")。接着走到在一个袋子前的浅色 X 标记处,使用 collect() 函数收集一个 "potato",如:player.collect("potato")

之后,走向中心锅旁边的黑色 X 标记,并使用 place() 函数放下你收集到的 "water",示例如下:player.place("water")。完成后,走向位于上方、冰箱前的浅色 X 标记,并收集 "meat",示例如下:player.collect("meat")

现在,既然你已经收集了 "meat""potato",请走向左侧房间中的两个金色 X 标记,并使用编辑器中编写的自定义函数 await oven()。对于右侧烤箱的问题,你必须选择将 "potato" bake;而对于左侧烤箱的问题,你必须选择将 "meat" grill,以完成该关卡。

代码书