2013-10-03 48 views
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%。建议与列表,循环和用户列表iput为了创建一个计算器,计算平均

回答

1

你做错了什么是从列表[100,90]变化的知识转化为一个int 190

for n in 190是不是一个有效的语句

此外

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

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

没有 – bcollins

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 
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))如果你处理的花车在2.x系列是,3.x中