132、假设你有一个调查结果的数据集,受访者可以选择提供他们的年龄。缺失值会被读取为 None。以下是一个计算该列表中平均年龄的函数:从 typing 模块导入 List 类型,定义函数 average,它接受一个浮点数列表作为输入并返回这些数字的平均值。列表中的一些元素可能是 None,这些元素在计算平均值时不被计入。示例调用 average([20, 30]) 应返回 25.0,average([None, 20, 30]) 也应返回 25.0。但该函数的实际运行结果不符合预期,例如调用 average([None, 30, 20]) 返回了 16.666666666666668。a. 使用 unittest 为 average 函数编写一组测试,测试应涵盖包含和不包含缺失值的列表情况。b. 修改 average 函数,使其能正确处理缺失值并通过所有测试。
a. 以下是使用 unittest 为 average 函数编写的测试代码:
import unittest
import test_average
class TestAverage(unittest.TestCase):
def test_no_missing_values(self):
result = test_average.average([20, 30])
self.assertEqual(result, 25.0)
def test_with_missing_values(self):
result = test_average.average([None, 20, 30])
self.assertEqual(result, 25.0)
if __name__ == '__main__':
unittest.main()
b. 修改后的 average 函数:
from typing

最低0.47元/天 解锁文章
397

被折叠的 条评论
为什么被折叠?



