Python 在'之外定义变量;而';环
[背景信息:我目前正在麻省理工学院edx网站上完成一门关于Python编程的课程,并且正在研究while循环部分。] 我一直在努力解决的问题如下:“编写一个while循环,将值1和end相加,包括在内。end是我们为您定义的变量。” 当我试图回答这个问题时,我说:Python 在'之外定义变量;而';环,python,loops,while-loop,Python,Loops,While Loop,[背景信息:我目前正在麻省理工学院edx网站上完成一门关于Python编程的课程,并且正在研究while循环部分。] 我一直在努力解决的问题如下:“编写一个while循环,将值1和end相加,包括在内。end是我们为您定义的变量。” 当我试图回答这个问题时,我说: while end != 0: total = 0 + end end = end-1 print total 我为“end”输入的任何值的返回结果都是1,这显然是不正确的 但是,当我再次尝试时,我在循环外部定义了“
while end != 0:
total = 0 + end
end = end-1
print total
我为“end”输入的任何值的返回结果都是1,这显然是不正确的
但是,当我再次尝试时,我在循环外部定义了“total”,并将:
total = 0
while end != 0:
total = total + end
end = end-1
print total
这管用
我的问题是:为什么我输入的第一个代码不起作用?在循环外部定义“总计”的意义是什么?当您在while循环内部定义
total
时,它会在每次循环时将自身重新分配到0+end
,在程序结束时为1。当您在外部定义它时,它将total
设置为0,然后对于中的每个循环,
将继续向其添加值
另外,请注意,您可以将
total=total+end
写成total+=end
,它的意思是相同的,但实际上要快一点。问题在于total=0+end
。这样做的目的是将end
的当前值分配给total
。由于end
最终变成1
,这就是总数。您需要将end
添加到正在运行的total
:
total = total + end
total = 0
total = 0 + 10
total = 10 + 9
total = 19 + 8
...
total = 54 + 1
或:
在第一个代码块中,每次运行
total=0+end
,都会重置total
total = 0 + 10
total = 0 + 9
total = 0 + 8
...
total = 0 + 1
最后一行是total=0+1
,等于1
在第二个循环中,您使用的是以前的值total
:
total = total + end
total = 0
total = 0 + 10
total = 10 + 9
total = 19 + 8
...
total = 54 + 1
每次通过循环时,total都会增加并被利用。在第一个循环中,您在每个循环中过度写入总计。在while循环中包含
total
的示例中,每次end!=0
,并且在end
等于1之后立即打印它(end=end-1
将使您脱离while循环,而end等于1)
在另一个示例中,您没有重新定义while循环中的每次行程
total
,这是在累积您期望的答案 它的可能副本实际上与范围无关。每个循环都有本质上不同的内容。