-1

我对这个CodingBat 问题有疑问:

给定一个整数列表,返回负值的计数。

count_negative([-1, -2, -3]) → 3
count_negative([2, 2, 2, 2, 2]) → 0
count_negative([-5, -3, 4]) → 2 

为什么这段代码不能正确运行?

def count_negative(list):
  for value in list:
      total = 0
      total += value
      return total
4

2 回答 2

3

每次循环后您都将设置total回零。把它放在循环之外:

此外,该函数将在第一个循环后中断,因为在函数返回某些内容后它会中断。也放在return total循环之外:

total = 0
for value in list:
    total += value
return total

我不明白这将如何确定一个数字是否为负数。您可以在循环内使用 if 语句。

if value < 0:
    total += 1

或者您可以只使用列表推导:

sum(1 for i in lst if i < 0)

顺便说一句,永远不要命名list。它覆盖了内置的。我很惊讶你的问题做到了。

于 2013-07-21T07:52:47.967 回答
-1

把它变成一个pd.DataFramethen 使用df[df>0].count()/len(df)

于 2019-04-25T07:29:15.463 回答