given_list5=[7, 5, 4, 4, 3, 1, -2, -3, -5, -7]
total7=0
i = 0
while True:
if given_list5[i] >=0:
break
total7 += given_list5[i]
i += 1
print(total7)这是我的代码。请帮我修一下。谢谢。
发布于 2020-12-12 15:04:54
given_list5=[7, 5, 4, 4, 3, 1, -2, -3, -5, -7]
total_neg=0
for i in given_list5: #that means you select every item in the list by one by. it's a loop
if i<0:
total_neg+=i #that means total_neg=total_neg + i
print(total_neg)发布于 2020-12-12 15:07:56
Python允许单行for循环约定。另外,对于这样的东西,您可以简单地执行以下操作:
given_list5 = [7, 5, 4, 4, 3, 1, -2, -3, -5, -7]
filtered_list5 = [i for i in given_list5 if i < 0]
total7 = sum(filtered_list5)
print(total7)
>> -17说明:filtered_list5只过滤负数列表,而sum()计算列表中所有元素的总和。
将所有内容组合到一行中:total7 = sum([i for i in given_list5 if i < 0])
编辑查看OP的代码样式,正如@Nick所提到的,这是一个使用以下代码的实现:
a) for-loop
given_list5 = [7, 5, 4, 4, 3, 1, -2, -3, -5, -7]
total7 = 0
for number in given_list5:
if number < 0:
total7 += number
print(total7)
>> -17b)如果你是初学者,while-loop实际上是很棘手的。要使用while循环循环列表,必须在列表上使用内置函数.pop()。你可以查看check this explanation。因此,在您的代码中,实现将是:
given_list5 = [7, 5, 4, 4, 3, 1, -2, -3, -5, -7]
total7 = 0
while given_list5:
number = given_list5.pop()
if number < 0:
total7 += number
print(total7)
>> -17发布于 2020-12-12 15:22:18
for num in given_list5:循环given_list5元素
str.isdigit() (检查数字):True =字符串,False :数字
given_list5=[7, 5, 4, 4, 3, 1, -2, -3, -5, -7]
sumNegativeQuantity = 0
for num in given_list5 :
if (str(num).isdigit() == False) and (num < 0) :
sumNegativeQuantity += num
print(sumNegativeQuantity)结果
-17https://stackoverflow.com/questions/65262383
复制相似问题