我只是一个初学者:P。
我在Codeacademy上做了关于while循环的教程"点击here!" ,
但我已经陷入了这个部分:写一个while循环,存储到" theSum
"前10个正整数(包括10个)的总和。这就是它给你的工作:
theSum = 0
num = 1
while num <= 10:
print num
num = num + 1
它在控制台中的单独行上打印出数字1到10。任何人都可以向我解释如何将它存储在变量中的值总和&#34; mySum
&#34;?到目前为止,我所做的任何事情对我都没有用。 :(
编辑: 好的,所以我试过这个:
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
答案 0 :(得分:5)
您已经显示了几乎所有需要的代码。
剩下的问题是,当您在num
循环中正确生成要添加的值(while
)时,您不会累积这些值变量theSum
。
我不会故意向您提供缺少的代码,以便您可以从问题中学到一些东西......但是您需要将num
的值添加到您的变量中<{1}} 内部循环。执行此操作的代码(它实际上只是一个语句,即一行代码)与您在循环中处理/更新theSum
的值的方式有些类似。
这有帮助吗?
答案 1 :(得分:2)
让我们深入了解您发布的代码。我已对行进行编号,以便我可以参考它们。
1. num = 1
2. while num <= 10:
3. num += 1
4. mySum = num
5. mySum = mySum + num
6. print mySum
这是一次干战
1. simple enough, create a new variable `num` and bind it to the number `1` 2. `num` is less than 10, so do the body of the loop 3. `num` is `1` so now bind it to `2` 4. create a new variable `mySum` and bind to `2` (same as num) 5. `mySum` is `2` and `num` is `2` so bind `mySum` to `4` Back to the top of the loop 2. `num` is less than 10, so do the body of the loop 3. `num` is `2` so now bind it to `3` 4. bind `mySum` to `3` (same as num) 5. `mySum` is `3` and `num` is `3` so bind `mySum` to `6` Back to the top of the loop 2. `num` is less than 10, so do the body of the loop 3. `num` is `3` so now bind it to `4` 4. bind `mySum` to `4` (same as num) 5. `mySum` is `4` and `num` is `4` so bind `mySum` to `8` Back to the top of the loop ...
看起来有些不对劲。你为什么要在循环中做这个mySum = num
?你期望它做什么?
答案 2 :(得分:0)
For循环!嘿,我说!
n=10
sum(range(n+1))
答案 3 :(得分:0)
我也非常努力。
这是我的解决方案,但我从interactivepython.org(http://interactivepython.org/runestone/static/pip2/IndefiniteIteration/ThewhileStatement.html)
获得了帮助如果没有'return'功能,我无法弄清楚如何做到这一点。请参阅下面的解决方案和说明:
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&lt; = 3:True 所以my_sum = 0 + 1 加计数增加1,现在计数= 2 “返回my_sum”是关键,因为它允许my_sum循环回到循环的顶部,现在为1而不是0。
while循环的第二次迭代:2&lt; = 3:True 所以my_sum = 1 + 2;再次计数增加1,所以现在count = 3 返回my_sum再次将my_sum的新值3返回到循环顶部
while循环的第三次迭代:3&lt; = 3:True 所以my_sum = 3 + 3;计数增加1,所以现在count = 4 返回my_sum再次将my_sum的新值6返回到循环顶部
while循环的第四次迭代从未发生,因为4&lt; = 3:False 现在程序打印my_sum,现在等于6。
但是,我认为有一种更简单的方法可以做到这一点。有没有办法让python生成一个列表,然后对列表中的值求和?例如,我可以编写一个名为sumlist(n)的程序,其中python列出了从0到n的整数,然后将它们相加起来?