输出列表中的所有负数
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)
如何获取列表中所有负数的输出。这是我试过但只能得到一个数字的代码
#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)