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

异常处理
异常处理

目标

将物资装入盒子,并通过使用异常处理来捕获可能出现的错误。

有几种紧急物资需要被打包成套件,并存放在箱子里以备后用。这个过程相当直接,可以使用你学过的常用函数来完成,但有时事情不会按计划进行。在编程时,你可能注意到有时会在屏幕上弹出错误,并且编辑器中出错的位置会标记红色。你可以通过设置 tryexcept 代码块来缓解这种情况。

这些代码块用于设置异常并在错误阻止代码运行之前捕获错误。其工作原理是将有问题或可能出错的代码置于 try 块中,并在发生错误时使用 except 块将该代码替换为另一段代码,例如:

#The try code block attempts to run a code try: number + number + string #This code yeilds an error, you can't sum numbers with string except: #If an error occurs the except code block is run instead number + number + number #The code is switched out by a sum of three numbers instead

首先,在野外收集所有材料,这些材料包括:水罐、"thread" 以及三条彩色毛毯:"blue blanket""red blanket""green blanket"。首先走到地图顶部并拿取这三条毛毯,然后走到标有亮 X 的位置,使用 collect() 函数从容器中获取 "thread"。接着,前往地图底部,收集所有水罐。

当所有物品都收集完毕后,前往蓝色地毯上标有深色 X 的位置,开始放置你刚收集的材料。首先,将水和线分别存入变量中,单位为 23,例如:water_can = 2thread = 3。然后按照下面的格式,将之前创建的变量与彩色毛毯相加,从而设置成套件变量:

blue_kit = water_can + thread + "blue blanket" red_kit = water_can + thread + "red blanket" green_kit = water_can + thread + "green blanket" # Add all elements together into kits for ease of storage

blue_kitred_kitgreen_kit 这三个套件变量组装完成后,就该将它们放入相应颜色的箱子中了,但你可能注意到代码抛出了一个错误。为什么会这样呢?一切都按要求进行了,说明错误的原因在于,有时直觉虽然正确,但事情并不会总如我们所愿——在这种情况下,你无法将数字与字符串相加。

那么我们该如何解决这个问题呢?通过使用 try / except 代码块来捕获错误,并将其转换为合适的替换。在这三个变量中,对于每一个变量都应用以下异常处理:在发生错误的情况下,用数值替代特定的字符串。

try: blue_kit = water_can + thread + "blue blanket" except: blue_kit = water_can + thread + 1

虽然在这种情况下我们已经知道错误的原因,但在某些情形下,变量中的值可能并不那么直观,或者可能因特定条件而有所不同,这使得这种方法成为排除故障或捕获运行时错误的有用工具。

通过走到彩色地毯上标有深色 X 的位置,面对箱子,并使用 place() 函数将相应颜色的套件变量放入正确的箱子中,即可完成本关卡。

代码书