0
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

4 回答 4

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)
于 2013-10-03T04:37:23.753 回答
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
于 2013-10-03T04:40:08.197 回答
1

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

for n in 190不是一个有效的陈述

此外

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

于 2013-10-03T04:40:19.103 回答
1
knowledge= [100,90]
knowledge=sum(knowledge)

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

我相信,您的打印语句缺少要%d进行的字符串格式化。

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

第二个循环也是如此。


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

于 2013-10-03T04:41:31.340 回答