2014-12-05 22 views
-3
values = [] 

def posNumAvg(values): 
    average = 0 
    sum = 0 
    if n in values > 0: 
     sum = sum + n 
    return sum/len(values) 

给我的留言:功能 - Unorderable类型列表中()> int()函数

​​3210

我该如何解决这个问题,从而在列表values每个值可以反对0比?

+0

欢迎来到Stack Overflow。请尽快阅读[About]页面,并用主要语言标记您的问题(我认为这里是Python,但如果我错了,请编辑标签)。假设它是Python,你看起来好像你试图在'if'语句中做某种列表理解,无论如何它肯定应该是'for'循环。回去阅读手册。 – 2014-12-05 01:51:25

+0

你不能这样做:'如果n的值大于0:''values'看起来是什么样的,什么是预期的输出? – Marcin 2014-12-05 01:54:49

+0

我想输入一个命令,将“值”列表中负数的总和除以“值”列表中的负数,换句话说:负数平均值 – 2014-12-05 04:48:23

回答

1

if n in values > 0:有不妥之处一大堆东西:

  • values > 0的列表进行比较,以一个int - 是你无法在Python
  • n in values > 0做的是一个未定义的变量与一个破碎表达式(你也不能这样做)
  • average从未使用过,这不是一个问题可能不是你想要的

试试这个:

def posNumAvg(values): 
    return sum(n for n in values if n > 0)/len(values) 

Python有一个内置的sum功能,你可以用它来获得所有项目的总和的迭代(在这种情况下,发电机对象),我们则通过划分原始值列表的长度。

+0

values = [] def numList ): while -9999 not in values: x = int(输入(“输入任何数量的数字或-9999退出:”)) values.append(x) values.remove(-9999) 返回值 DEF NonPosAvg(值):#密钥2 返回总和(n,用于在n值如果n> 0)/ LEN(值) 打印( “数字的输入的列表为:”,numList ()) Display_Avg = {} Display_Avg [ 'AvgPosAvg:'] = NonPosAvg(值) 打印(Display_Avg) – 2014-12-05 03:37:07

+0

@rustyh。什么 ? – 2014-12-05 04:04:59

+0

好吧我有它的工作,但采取您的确切代码,我怎么能除以“值”列表中的负数(而不是列表中的总项目)? – 2014-12-05 04:10:30

相关问题