Python循环编程,循环未运行
我是Python新手,虽然我在教程中逐字逐句地输入,但没有得到应有的结果。基本上,我期望从这个范围中得到多个答案,但我只得到一个结果Python循环编程,循环未运行,python,loops,Python,Loops,我是Python新手,虽然我在教程中逐字逐句地输入,但没有得到应有的结果。基本上,我期望从这个范围中得到多个答案,但我只得到一个结果 >>> sum = 0 >>> for i in range (10): sum = sum + i >>> print (sum) 45 我错在哪里?事实上,这是你应该期待的正确答案。(希望你不介意用一点JS来证明我的观点) 现在,如果希望循环的每次迭代都打印sum变量,则应修改代码,使其如下所示:
>>> sum = 0
>>> for i in range (10): sum = sum + i
>>> print (sum)
45
我错在哪里?事实上,这是你应该期待的正确答案。(希望你不介意用一点JS来证明我的观点) 现在,如果希望循环的每次迭代都打印
sum
变量,则应修改代码,使其如下所示:
sum = 0
for i in range (10):
sum = sum + i
print (sum)
间距在Python中很重要。非常重要。这里没有问题。在每一步中,你要把下一个数字加到和上,所以在每一步中,它是0,1,3,6,…,45。然后你把答案打印出来 如果要打印每个步骤,需要确保打印在for块内:
for i in range (10):
sum = sum + i
print (sum)
(注意缩进)
注意:不要使用sum
作为变量名。它已经是一个全局函数,因此通过赋值sum=0
您正在删除旧的含义-在一个新的python shell中检查sum(范围(10))
,请注意,使用sum
是一个坏主意,因为它已经是python内置函数了。我在这里使用total
:
total = 0
for i in range(10):
total = total + i # same as total += i
print(total)
给出:
0
1
3
6
10
15
21
28
36
45
这是您期望/想要的输出吗
在Python中,空格/缩进是至关重要的,因此如果希望语句成为函数/循环/etc的一部分,则需要将其缩进到与块中其他语句相同的级别
相比之下,您的原始代码的格式更为传统:
total = 0
for i in range(10):
total = total + i # same as total += i
print(total)
因此,您可以看到,print
仅在循环完成执行后被调用一次。缩进使两个版本之间完全不同
最后,提到应该有,因此range(10)
优先于range(10)
,print()
优先于print()
,等等
对于任何Python程序员来说都是很好的读物。你所说的
到底是什么意思?我期待着从范围中得到多个答案。您是否正在尝试打印所有数字b/w0-10
而不是您应该为xrange(10)中的i执行的:打印i
为什么会得到多个结果?问题是?我投票结束这个问题,因为它太基本了。如果你想学习Python,最好读一本书。现在,如果您所遵循的教程没有意义,您应该找到另一个教程并继续阅读,直到您掌握Python的基本原理。这样,一旦你真的陷入困境,你可以来找我们,我们将很乐意帮助你。:)如果你违背了我所见过的每一个教程的内容,在你还不了解基本知识之前就试图发明你自己的编码风格,那你就错了。我所遵循的Alison教程就在这里:非常感谢,但即使复制你的代码行,它也会打印一个答案,45,而不是其他答案。我遵循的教程来自Alison(),他们使用“总和”而不是“总和”,我仍然只得到45个结果,其他结果都没有。非常令人沮丧。@endarandom好的,我的第一段可以工作(我测试了它,您看到的输出就是它生成的)。我想知道,当你复制/粘贴它时,你是否会看到一些难以识别的标签和空白。由于代码很短,我建议您只键入这几行。如果要逐行执行,请确保缩进。你在Windows下工作吗?你在用IDLE吗?@endarandom让我知道你是怎么做的——这相当直接,所以我们应该让它工作起来。我想知道教程的内容。。。这是官员,以防你想查一下。