我是 Python 新手,虽然我在教程中逐字输入,但我没有得到我应该得到的结果。基本上,我期望该范围内有多个答案,但我只得到一个结果。
>>> sum = 0
>>> for i in range (10): sum = sum + i
>>> print (sum)
45
我哪里错了?
请注意,使用sum
是一个坏主意,因为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 中,空格/缩进是至关重要的,因此如果您希望语句成为函数/循环/等的一部分,则需要将其缩进到与块中其他语句相同的级别。
相比之下,您的原始代码看起来像这种格式更传统:
total = 0
for i in range(10):
total = total + i # same as total += i
print(total)
所以你可以看到它只在循环完成执行后被print
调用一次。缩进使两个版本之间的所有区别。
最后, PEP8 - The Python Style Guide提到函数名和它的参数之间不应该有空格,所以range(10)
首选 to range (10)
, print()
toprint ()
等
PEP 8是任何 Python 程序员的好读物。
这实际上是您应该期待的正确答案。这是证明(希望你不介意一点 JS 来证明我的观点)
现在,如果您希望在sum
循环的每次迭代中都打印该变量,您应该修改您的代码,使其如下所示:
sum = 0
for i in range (10):
sum = sum + i
print (sum)
间距在 Python 中很重要。很重要。
这里没有错。在每一步中,您都将下一个数字相加,因此在每一步中,它都是 0、1、3、6、....、45。然后您将答案打印出来。
如果要打印出每个步骤,则需要确保 print 位于 for 块内:
for i in range (10):
sum = sum + i
print (sum)
(注意缩进)
PS。不要sum
用作变量名。它已经是一个全局函数,所以通过分配sum=0
你正在删除旧的含义 - 签sum(range(10))
入一个新的 python shell