在 Python 中,我得到了一个错误的总和,我只得到了位于负数之前的正数的总和
in Python, I get a wrong total, i only get the total of the positive numbers that are located before the negative ones
我在 python 中写了这段代码:
list=[3,5,7,6,-9,5,4]
i=0
total=0
while i<len(list) and list[i] > 0:
total+=list[i]
i+=1
print(total)
而不是获取所有正数的总数,我只获取位于负数之前的数字的总数,我不确定我做错了什么,这只是我在 python 我需要一些帮助^^
那是因为你有遇到负数就结束循环的条件。您可以先从循环中删除该条件。
while i<len(list):
接下来,您只想添加 non-negative 个数字,因此,在循环中使用带有您想要的条件的条件语句。
if list[i] > 0:
尝试理解 while 循环的工作原理。只要 i < len(list
和 list[i] > 0
就有效。当它达到值 -9
时,while 循环的第二个条件变为假并终止。因此在遇到第一个负整数后不计算和。
要解决此问题,请执行
lis = [3, 5, 7, 6, -9, 5, 4]
sum = 0
for i in lis:
if i > 0:
sum += i
对于您的 while 循环代码,请使用
lis = [3, 5, 7, 6, -9, 5, 4]
i = 0
sum = 0
while i < len(lis):
if lis[i] > 0:
sum += lis[i]
i = i + 1
此外,虽然可以使用变量名list
,但建议不要在Python中使用,因为list
也是关键字。
在这种情况下不要使用 while
循环。在 Python 中使用 for
循环更容易迭代容器中的项目。加上逻辑错误,当 and list[i] > 0
条件失败时,会提前退出 while
循环。
lst = [3,5,7,6,-9,5,4]
total = 0
for item in lst:
if item > 0:
total += item
print(total)
此外,不要使用 list
作为变量名。这取代了 built-in list
类型,称为“阴影”。
您还可以使用列表理解并进一步简化代码:
lst = [3,5,7,6,-9,5,4]
total = sum([item for item in lst if item > 0])
print(total)
我在 python 中写了这段代码:
list=[3,5,7,6,-9,5,4]
i=0
total=0
while i<len(list) and list[i] > 0:
total+=list[i]
i+=1
print(total)
而不是获取所有正数的总数,我只获取位于负数之前的数字的总数,我不确定我做错了什么,这只是我在 python 我需要一些帮助^^
那是因为你有遇到负数就结束循环的条件。您可以先从循环中删除该条件。
while i<len(list):
接下来,您只想添加 non-negative 个数字,因此,在循环中使用带有您想要的条件的条件语句。
if list[i] > 0:
尝试理解 while 循环的工作原理。只要 i < len(list
和 list[i] > 0
就有效。当它达到值 -9
时,while 循环的第二个条件变为假并终止。因此在遇到第一个负整数后不计算和。
要解决此问题,请执行
lis = [3, 5, 7, 6, -9, 5, 4]
sum = 0
for i in lis:
if i > 0:
sum += i
对于您的 while 循环代码,请使用
lis = [3, 5, 7, 6, -9, 5, 4]
i = 0
sum = 0
while i < len(lis):
if lis[i] > 0:
sum += lis[i]
i = i + 1
此外,虽然可以使用变量名list
,但建议不要在Python中使用,因为list
也是关键字。
在这种情况下不要使用 while
循环。在 Python 中使用 for
循环更容易迭代容器中的项目。加上逻辑错误,当 and list[i] > 0
条件失败时,会提前退出 while
循环。
lst = [3,5,7,6,-9,5,4]
total = 0
for item in lst:
if item > 0:
total += item
print(total)
此外,不要使用 list
作为变量名。这取代了 built-in list
类型,称为“阴影”。
您还可以使用列表理解并进一步简化代码:
lst = [3,5,7,6,-9,5,4]
total = sum([item for item in lst if item > 0])
print(total)