输出列表中的所有负数

Output all negative numbers in a list

如何获取列表中所有负数的输出。这是我试过但只能得到一个数字的代码

#creat list using function
def Negative(List):    
      sum=0

      for i in List:
             if i < 0:
                 sum += i
                 return sum
#input and print list
inputData= input('enter numbers')

List = [float(i) for i in inputData.split(' ')]

print(Negative(List))
   def Negative(List):
       return [num for num in List if num<0]
   #input and print list
   inputData= input('enter numbers')
   List = [float(i) for i in inputData.split(' ')]
   print(Negative(List))

因为一个函数只能return一次。

The return statement terminates the execution of a function and returns control to the calling function. Execution resumes in the calling function at the point immediately following the call.

所以在第 8 行你是 returning 总和然后存在。它不会进行下一次循环迭代,因此它 return 第一个 num 对于该条件为真。

Solution:

将每个迭代结果存储在某个地方,例如列表、字典等,然后 return 最后一个函数。

这里你可以试试:

#creat list using function
def Negative(List):
    neg_num=[]
    for i in List:
        if i<0:
            neg_num.append(i)
    return neg_num
#input and print list
inputData= input('enter numbers ')


List = [float(i) for i in inputData.split(' ')]

print(Negative(List))

输出:

enter numbers 1 -2 3 -4 5 -6 7 -8
[-2.0, -4.0, -6.0, -8.0]

正如您评论的那样:

how to count the numbers obtained from the list??

试试这个:

#creat list using function
def Negative(List):
    neg_num=[]
    for i in List:
        if i<0:
            neg_num.append(i)
    return neg_num
#input and print list
inputData= input('enter numbers ')


List = [float(i) for i in inputData.split(' ')]

print(Negative(List))
print(len(Negative(List)))

输出:

enter numbers 1 -2 3 -4 5 -6 7 -8
[-2.0, -4.0, -6.0, -8.0]
4

或者如果您想要列表项的总和,就像您在程序中尝试做的那样:

print(sum(Negative(List)))

Additional :

您可以使用列表推导来简化此 for 循环逻辑:

neg_num=[i for i in List if i<0]  

等同于:

neg_num=[]
    for i in List:
        if i<0:
            neg_num.append(i)