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

高级函数
多态函数

在本章中,我们将探索新的函数类型、它们的各种用途以及如何在使用 Python 编程时充分发挥它们的优势。

在本关中,我们首先学习多态函数——即可以用于多种不同数据类型的函数。这就像是使用同一个函数执行不同的操作,也是一种通用函数。

Guide

目标

检查作物和猪仔的状态,并使用多态函数确认供应发货情况。

很快将会有一些作物需要收割,然后运出去销售。猪仔们也需要送食物,所以最好了解一下需要订购多少食物。为完成这些任务,你可以使用多态函数,在本例中我们将使用 len() 函数。

多态函数是可以用于多种不同数据类型的函数。例如,len() 函数用于计算对象的长度,这些对象可以是不同的数据类型,如列表、字典甚至字符串。首先,从田地中下方的 X 记号开始计数,然后再移动到棚子中上方的 X 记号处。

路边的围栏内有几只猪仔,它们的名字分别是 "Peggle""Peter""Piper""Pedro",将它们的名字放入一个列表中,以便你进行计数。示例如下: piglets = ["Peggle", "Peter", "Piper", "Pedro"]

创建一个名为 number 的变量,使用 len() 函数存储该列表的长度,如下所示: number = len(piglets)

设置好列表和变量后,走到猪仔围栏前那个深色的 X 记号处,面向围栏,并使用 speak() 函数来数一数猪仔的数量。使用变量 number 得到结果,如下所示: player.speak("There are d% Piglets" % (number) )

在检查完猪仔之后,走到田边那个浅色的 X 记号处,面向作物并对它们进行计数。有三(3)种不同类型的作物:"Tomatoes""Pumpkins""Eggplant"。分别计数每种作物的数量,并将它们存储在一个字典中,如下所示:

crops = {} crops["Tomato"] = number of tomato crops crops["Pumpkin"] = number of Pumpkin crops crops["Eggplant"] = number of Eggplant crops

一旦你用正确的数值填充了字典,就使用 speak() 函数结合 len() 函数计算出可用作物的种类数,如下所示: player.speak("There are d% types of crops" % ( len(crops) ) ) .

在你完成对猪仔和作物的计数后,走到紫垫子上那个深色的 X 记号处,检查需要发运的作物订单。有一个名为 order 的常量变量,其中包含了需要发运作物订单的字符串。我们需要找出订单的内容以及订单的数量,可以通过使用 speak() 函数解包字符串并结合使用 len() 函数来实现。

player.speak( [*order] ) player.speak("There are d% orders of crops going out" % ( len(order) ) )

通过将字符串变量放在方括号内并加上 *,我们可以激活一个操作符来解包字符串。例如: [*string]。这样做会把字符串中的每个字符分开,并放入一个列表中,例如: [*string] 将输出列表 ['s', 't', 'r', 'i', 'n', 'g']。而对字符串使用 len() 函数时,则会计算该字符串中的字符数量。

最后,为结束此练习,走到棚子右侧金色的 X 记号处,确定为猪仔送食物需要多少磅。创建一个名为 food 的变量,其值为之前创建的变量 number 乘以 35,以确定所需的磅数,如下所示: food = number * 35

在面向棚子的同时,使用 speak() 函数结合变量 food 来显示送达食物的数量,如下所示: player.speak("There are d% pounds of food coming in" % (food) ) .

代码书