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

数学模块
数学模块扩展

目标

使用 math 模块导入的更多函数计算农场的新土地扩展面积。

过桥后,附属建筑中有一些办公室用于测量将农场两个不同部分合并的未经划分的土地。在这里,我们将找到一些土地的尺寸和测量数据,对它们进行排序并记录数据是个好主意。你可以通过使用 math 模块来实现这一点,在这一关中我们将介绍一组新的函数,用于处理数据。你需要使用相同的 import math 以及在函数前添加 math. 来使用这一组函数:

  • math.radians(): 将角度转换为弧度/角。
  • math.floor(): 将数字向下舍入到较低的整数。
  • math.ceil(): 将数字向上舍入到较高的整数。
  • math.atan2(): 返回两个数字之间的反正切值,以弧度表示。
  • math.isclose(): 检查两个数字是否接近,返回 true/false。
  • math.fsum(): 对列表或可迭代对象中的浮点数(小数)进行求和。
  • math.dist(): 计算两个点之间的距离,数值必须是列表或可迭代对象。

开始采集图表上的原始数据,方法是走向标有亮 X 的位置,该位置在红色和蓝色地毯上。使用 read() 函数识别需要进行测量的原始尺寸。这些测量数据已经存储在四个常量变量中,分别命名为:red_xred_yblue_xblue_y

一旦两组数据都被识别,走向橙色地毯上标有暗 X 的位置并面向桌子。使用 math.radians()math.ceil() 将变量 blue_xblue_y 转换为弧度并向上舍入。使用 float() 来确保常量为可编辑的小数。例如,对于变量 blue_x:先转换为弧度 blue_x = math.radians(float(blue_x)),再向上舍入 blue_x = math.ceil(float(blue_x))。对 blue_y 执行相同操作,在此 X 标记处处理完毕后,使用预定义的 write() 函数记录 blue_xblue_y 的值。

走向绿色地毯上标有暗 X 的位置,使用 math.radians()math.floor() 将变量 red_xred_y 转换为弧度并向下舍入。例如,对于变量 red_x:先转换为弧度 red_x = math.radians(red_x),再向下舍入 blue_x = math.floor(red_x)。对 red_y 执行相同操作,在此 X 标记处处理完毕后,使用预定义的 write() 函数记录 red_xred_y 的值。

走向金色 X 标记并面向桌子,在这里我们将创建两个新变量:data_adata_b。我们将使用 math.atan2 函数存储每组数据的反正切值。对于 data_a,使用 blue_xblue_y 变量填充该函数,如下所示:data_a = math.atan2(blue_x,blue_y)。对于 data_b,同样使用 red_xred_y。处理完毕后,使用预定义的 write() 函数记录 data_adata_b 的值。

现在下层桌子的任务已完成,走向紫色地毯上标有暗 X 的位置,创建一个变量名为 comparison,并使用 math.isclose() 函数,以 data_adata_b 作为参数,如下所示:comparison = math.isclose(data_a, data_b)。使用预定义的 write() 函数记录 comparison 变量的值。

走向白色地毯上标有 X 的位置,创建一个列表名为 data_list,并按顺序添加 data_adata_b。创建一个变量名为 total,并使用 math.fsum() 函数,以 data_list 作为参数,如下所示:total = math.fsum(data_list)。使用预定义的 write() 函数记录 total 变量的值。

走向黄色地毯上标有暗 X 的位置并面向桌子,将 data_adata_b 分别转换为单独的列表。例如,对于 data_adata_a = [data_a]。对 data_b 进行相同转换,将这两个变量转换为可迭代对象,以便用于 math.dist() 函数。创建一个变量名为 distance,并使用它存储 math.dist() 的值,使用 data_adata_b 作为参数。使用预定义的 write() 函数记录 distance 变量的值,即可完成本关。

代码书