3

我只是一个初学者:P。我正在 Codeacademy 上做一个关于 while 循环的教程“点击这里!” ,但我在这部分卡住了:编写一个while循环,将theSum前10个正整数(包括10)的总和存储到“”中。这就是它给你的工作:

theSum = 0
num = 1
while num <= 10:
    print num
    num = num + 1

它在控制台的单独行上打印出数字 1 到 10。谁能向我解释如何让它将值的总和存储在变量“ mySum”中?到目前为止,我尝试过的任何事情都对我不起作用。:(

编辑:好的,所以我只是尝试了这个:

theSum = 0
num = 1
while num <= 10:
    num += 1
    mySum = num
    mySum = mySum + num

print mySum

这给了我22,这是为什么呢?我到底是不是很亲近?(感谢所有回复,但我明天再试一次。)

编辑:好的,我明白了!感谢您的帮助。:)

mySum = 0 
num = 1 
while num <= 10: 
    mySum += num 
    num += 1    
print mySum
4

4 回答 4

7

您已经显示了几乎所有需要的代码。

剩下的问题是,当您在-loop中正确生成要添加的值 ( num)时,您并没有在变量中累积这些值。whiletheSum

我不会故意给你缺少的代码,这样你就可以从你的问题中学到一些东西......但是你需要在循环num将值添加到你的变量中。执行此操作的代码(实际上只有 一个语句,即一行代码)将与您在循环内处理/更新值的方式有些相似。theSum num

这有帮助吗?

于 2012-08-22T22:49:49.177 回答
2

让我们试一下您发布的代码。我已经对这些行进行了编号,以便我可以参考它们。

1. num = 1
2. while num <= 10:
3.     num += 1
4.     mySum = num
5.     mySum = mySum + num

6. print mySum

这是一个试运行

1. 很简单,创建一个新变量`num`并将其绑定到数字`1`
2.`num`小于10,循环体也是如此
3. `num` 是 `1` 所以现在将它绑定到 `2`
4.创建一个新变量`mySum`并绑定到`2`(与num相同)
5. `mySum` 是 `2` 而 `num` 是 `2` 所以将 `mySum` 绑定到 `4`
回到循环顶部
2.`num`小于10,循环体也是如此
3. `num` 是 `2` 所以现在将它绑定到 `3`
4.将`mySum`绑定到`3`(与num相同)
5. `mySum` 是 `3` 而 `num` 是 `3` 所以将 `mySum` 绑定到 `6`
回到循环顶部
2.`num`小于10,循环体也是如此
3. `num` 是 `3` 所以现在将它绑定到 `4`
4.将`mySum`绑定到`4`(与num相同)
5. `mySum` 是 `4` 并且 `num` 是 `4` 所以将 `mySum` 绑定到 `8`
回到循环顶部
...

看起来有些不对劲。mySum = num你为什么在循环中这样做?你期望它做什么?

于 2012-08-23T00:28:16.037 回答
0

对于循环!嗯,我说!

n=10
sum(range(n+1))
于 2012-08-22T23:04:21.947 回答
0

我也为此苦苦挣扎。

这是我的解决方案,但我得到了 interactivepython.org 的帮助(http://interactivepython.org/runestone/static/pip2/IndefiniteIteration/ThewhileStatement.html

如果没有“返回”功能,我无法弄清楚如何做到这一点。请参阅下面的解决方案和说明:

def problem1_3(x):
    my_sum=0
    count = 1
    while count<=x:
        my_sum=my_sum+count
        count = count+1
    return my_sum
    print(my_sum)

假设您设置 x = 3 我相信python 解释的方式如下:设置 my_sum = 0 和 count = 1 1. 使用 while 循环的第一次迭代:1 <= 3 :真所以 my_sum = 0+1 加上计数增加by 1 and now count = 2 “Return my_sum”是关键,因为它允许 my_sum 现在以 1 而不是 0 循环回到循环的顶部。

  1. while 循环的第二次迭代: 2 <= 3 : True 所以 my_sum = 1+2 ; count 再次增加 1 所以现在 count = 3 Return my_sum 再次将 my_sum 的新值 3 返回到循环的顶部

  2. while 循环的第三次迭代: 3 <= 3 : True 所以 my_sum = 3+3 ;count 增加 1 所以现在 count = 4 Return my_sum 再次将 my_sum 的新值 6 返回到循环的顶部

  3. 自 4 <=3 以来,while 循环的第四次迭代从未发生过:False 现在程序打印 my_sum 现在等于 6。

但是,我认为会有一种更简单的方法来做到这一点。python有没有办法生成一个列表,然后对列表中的值求和?例如,我可以编写一个名为 sumlist(n) 的程序,其中 python 列出从 0 到 n 的整数,然后将它们相加吗?

于 2017-04-02T21:10:56.457 回答