当前位置: 首页 > 知识库问答 >
问题:

为什么我的虽然循环不能求和所有值

公羊俭
2023-03-14

我正在学习Python,并有一些困难理解虽然循环。我试图计算负数的总数,但无法正确计算。

given_list3=[7,5,4,4,3,1,-2,-3,-5,-7]
total6=0
i=0
while i<len(given_list3)and given_list3[i]<0:
    total6+=given_list3[i]
    i+=1
print(total6)

这是我计算正数之和的代码(工作正常)

given_list=[5,4,4,3,1,-3,-4,-5]
total3=0
i=0
while i<len(given_list) and given_list[i]>0:
    total3+= given_list[i]
    i+=1
print(total3)

共有2个答案

严宏朗
2023-03-14

你不能用while循环,

你已经说过,当条件为真时,首先,条件为非真,因为7不小于0,所以条件停止。

您需要使用其他类型的循环,例如for loop

given_list3=[7,5,4,4,3,1,-2,-3,-5,-7]
total6=0

i=0


for i in range(len(given_list3)):
    if(given_list3[i]<0):
        total6+=given_list3[i]


print(total6)

逑兴安
2023-03-14

您的问题是,当您计算负数的总和时,您的循环在第一个值上退出,因为它没有传递given_list3[i]

while i<len(given_list3):
    if given_list3[i]<0:
        total6+=given_list3[i]
    i+=1

print(total6)

输出

-17

注:你可以用列表代替简单的循环。

total6 = sum([x for x in given_list3 if x < 0])
print(total6)

输出

-17

 类似资料:
  • 我试图创建一个函数,使用不同的字段作为权重将数据分成十分之一,这样我就可以有相等的暴露桶。在这样做的时候,我创建了一个简单的例子,我试图进入3个桶。我确实在第一部分遇到了困难,那就是让这个while循环工作起来: 我的成绩是0,0 谢谢!

  • 在生命数==0之后,while语句为false,必须退出循环。但在这种情况下,即使循环为false,也会执行循环。

  • 我对java非常陌生,需要帮助。基本上,我有一个程序,要求用户输入一个数字。当输入该数字时,它会将该数字之前的所有奇数相加。我正在尝试(但失败)做的是,做另一个循环,当提示用户请求一个数字来求奇数之和时,我想让它只在输入奇数时继续,否则它将不断重复询问用户,直到他们输入奇数为止。我知道使用循环可以解决这个问题,但我不知道如何让它工作。 这是我的密码: 提前谢谢!

  • hasNext()的定义是“如果此扫描仪的输入中有另一个标记,则返回true。此方法可能会在等待输入扫描时阻塞。扫描仪不会前进超过任何输入。” 当我把 standardInput.hasNext() 放在 for 循环中时,程序会向无穷大运行。但是如果我把它放在 while-loop 中,它不会运行到无穷大。这两个程序之间的区别在哪里,为什么其中一个有效而另一个无效? for循环: while-l

  • 当用户键入以下内容的答案时:system.out.println(“键入数字”); 它不会继续到我的代码的下一部分。

  • 我正在将代码从Processing移植到Netbeans Java。我在运行多个java类时遇到问题。我的代码分为14个类,其中我的主要类仅包括这组代码: 无论项目何时运行,都只会弹出一个灰色背景的小屏幕,然而,仅此而已。在我看来,它无法读取其他13个类的所有代码。有什么想法吗?