如何在if语句中使用len()

时间:2019-03-23 22:33:36

标签: python-3.x

我正在定义一个函数standard_deviation,该函数使用数字列表并返回一个表示其标准差的浮点数。如果列表少于2个元素,我需要使用len函数返回None。

这是我写的:

SURVEY_RESULTS = [0, 1, 2, 0, 2, 3, 1, 1, 1, 2]
def standard_deviation():
    if len(SURVEY_RESULTS) < 2:
        return None
    elif len(SURVEY_RESULTS) > 2:
        stdev = (((sum(square(SURVEY_RESULTS))) - (summate * summate)/(count))/(count - 1)) ** .5
        rounded_stdev = (round(stdev, 2))
    print(rounded_stdev)

我运行代码时什么也没打印。我已经分别运行了标准差代码,所以我知道它可以正常工作,而我的问题出在我的if语句中。

2 个答案:

答案 0 :(得分:0)

有一个警报:您没有考虑len()为2的情况。

实际答案在这里。在所有def块之后,您是否在standard_deviation()之后运行?不需要缩进。使用def,您只是定义了一个函数,而没有运行它

答案 1 :(得分:0)

您的环境有问题,因为代码很好。为了运行它,我从stddev =行中删除了所有未定义的部分,然后调用了standard_deviation()函数。它按预期工作:

SURVEY_RESULTS = [0, 1, 2, 0, 2, 3, 1, 1, 1, 2]
def standard_deviation():
    if len(SURVEY_RESULTS) < 2:
        return None
    elif len(SURVEY_RESULTS) > 2:
        stdev = sum(SURVEY_RESULTS) ** .5
        rounded_stdev = (round(stdev, 2))
    print(rounded_stdev)

standard_deviation()

输出:

3.61

尝试将代码减少到最少的示例-不仅会产生更好的问题,更有可能吸引高质量的答案,而且这样做可能会发现错误在其他地方。