我正在定义一个函数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语句中。
答案 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
尝试将代码减少到最少的示例-不仅会产生更好的问题,更有可能吸引高质量的答案,而且这样做可能会发现错误在其他地方。