列表中的负整数的总和

问题描述:

我想在用户输入列表中添加所有的负整数,但函数始终返回0作为答案。如果我将该列表作为函数的一部分包含在内,但它在用户输入时不起作用。我有的代码是:列表中的负整数的总和

def sumNegativeInts(userList): 
    userList = [] 
    sum = 0 
     for i in userList: 
      if i < 0: 
      sum = sum + i 
      return sum 

userList = input("Enter a list of +/- integers: ") 
print(sumNegativeInts(userList)) 
+2

三大问题。你正在重新分配一个空白列表。所以,没有要添加的元素。 2.你在第一次迭代中返回'sum'。 3.'input'函数将返回一个字符串,而不是数字列表。您需要拆分字符串并将字符串转换为数字。 – thefourtheye

您每次输入函数时都会为userList指定一个空列表,它怎么能不是0?

此外,函数input()似乎无法处理输入列表。

所以我认为你可以这样做:

def sumNegativeInts(userList): 
    sum = 0 
    for i in userList: 
     if i < 0: 
      sum += i 
    return sum 

inputData = raw_input('some prompts') 
userList = [int(i) for i in inputData.split(' ')] 
print(sumNegativeInts(userList)) 

sum(i for i in alist if i < 0) 

完成。它是Python,它必须简单!

删除代码的第二行,它会将输入设置为空列表,而不管输入是什么。