【发布时间】:2019-08-04 16:32:56
【问题描述】:
我只是有一个关于 Python 3 中 for loop 的基本问题。这是一个愚蠢而简单的问题,但我认为这里的其他人对我来说知识渊博得多,而且大多数答案都很聪明!我不自称聪明,所以我想澄清一下。运行这个循环似乎只添加了一个值。我将x 定义为1,所以这是有道理的,但我没有给i 一个真正的值,它似乎很自然地是1。
for i in range(0, 50):
x = 1
i = x + i
print(i)
我没有遇到错误,我只是好奇幕后发生了什么。希望比我更了解这一点的人提供一些解释!
【问题讨论】:
-
在这一点上,您似乎只是在迷惑自己。 你通过写
i in range(0, 50)告诉i应该采用什么值。然后,您将1添加到i在范围对象中获取的每个值。 (从 0 开始,如果你注意到的话。)改变范围,看看会发生什么。 -
既然您将
x定义为1,您将每次打印x +该值。由于范围以0开头,那么i+x以1开头。 -
啊哈,我明白你的意思了。范围是给
i它的值,是吗?从 0 开始,添加 x,然后 1,添加 x,依此类推。 -
确实如此。这意味着您对变量
i所做的任何额外工作都将在下一次迭代中丢弃,因为i已从 Ranges 中重新分配了一个新值。 -
啊,是的,我知道发生了什么。谢谢你。我试图做一些事情,比如每次循环重新开始时增加
i的值,比如斐波那契数列。你说得对,我把自己弄糊涂了。非常感谢。
标签: python loops for-loop variables default-value