列表中的负int的总和

时间:2015-11-02 02:50:14

标签: python list python-3.x sum negative-number

我试图在用户输入列表中添加所有负整数,但该函数总是返回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))

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

每次进入函数时都会为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))

答案 3 :(得分:0)

您总是可以执行if和elif语句来确定是否在列表中添加数字,然后取列表的总和。我的提示是列出一个由100到100到100到100之间的随机整数组成的列表。然后找到所有负数的总和。

    import random
    def SumNegative():
         my_list = []
         for i in range(100):
             x = random.randint(-100, 100)
             if x > 0:
                 pass
             elif x < 0:
                 my_list.append(x)
          print(sum(my_list))
    SumNegative()