列表中的负整数的总和
问题描述:
我想在用户输入列表中添加所有的负整数,但函数始终返回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))
答
您每次输入函数时都会为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,它必须简单!
答
删除代码的第二行,它会将输入设置为空列表,而不管输入是什么。
三大问题。你正在重新分配一个空白列表。所以,没有要添加的元素。 2.你在第一次迭代中返回'sum'。 3.'input'函数将返回一个字符串,而不是数字列表。您需要拆分字符串并将字符串转换为数字。 – thefourtheye