建议使用列表,for循环和用户列表,以创建计算平均值的计算器

时间:2013-10-03 04:32:42

标签: python python-3.x

knowledge= [100,90]
knowledge=sum(knowledge)
for n in knowledge:
    print ('Your average is' + knowledge/n*100)

thinking= [96,90,97]
thinking=sum(thinking)
for n in thinking:
    print ('Your average is' + thinking/ n*100)

我正在尝试构建一个计算平均值的非常简单的计算器。而不是我放入标记,我想知道如何让用户输入他们的标记,然后添加标记并除以标记数* 100。 我想知道我做错了什么。 而且我也想知道如何添加打印值并将它们乘以每个类别的价值。例如,知识价值60%,思考价值40%。

4 个答案:

答案 0 :(得分:1)

如何:

mean = sum(knowledge)/len(knowledge)

另外,如果你可以使用numpy包:

import numpy
scores_list = [10,120,50,80,500,40]
scores_array = numpy.array(scores_list)
scores_mean = numpy.mean(scores_array)
scores_std = numpy.std(scores_array)
scores_min = numpy.min(scores_array)
scores_max = numpy.max(scores_array)

答案 1 :(得分:1)

不确定这里有什么混乱。

>>> thinking= [96,90,97]
>>> average=sum(thinking)/float(len(thinking))
>>> average
94.33333333333333
>>> round(average, 2)
94.33
>>> average=sum(thinking)/len(thinking)
>>> average
94

答案 2 :(得分:1)

您所做错的是将知识从列表[100,90]更改为int 190

for n in 190不是有效的声明

此外

thinking% n*100thinking/n*100不同,第一个使用模运算符(%),它应该使用除法运算符(/

答案 3 :(得分:1)

knowledge= [100,90]
knowledge=sum(knowledge)

knowledge现在是一个整数,所以当你尝试for n in knowledge时,你试图迭代一个整数,但你不能这样做。

我相信您的打印声明缺少%d字符串格式化。

print ('Your average is %d' + % knowledge % n*100)

第二个循环也是如此。


要获得列表的平均值,只需执行sum(thinking)/len(thinking)(或sum(thinking)/float(len(thinking)),如果您正在处理浮点数