【发布时间】:2016-01-24 13:36:15
【问题描述】:
我之前学习过 Visual Basic,现在我正在学习 Python。我意识到在 Python 中,我们不必为for loop 中的标识符初始化一个值,但在while loop 中则相反。在 Visual Basic 中对我来说似乎很陌生,我们必须在两个循环中声明一个变量作为标识符。
例如,来自 Python wiki,
x = 1
while True:
print "To infinity and beyond! We're getting close, on %d now!" % (x)
x += 1
完美运行。但是,在我评论x = 1 后,它会产生错误。为什么它不能像for loop 那样运行,x 从 0 开始?
另外,即使我们为for loop中的标识符赋值,例如,
num = 10
for num in range(5):
print num
print num
循环将覆盖赋值的值。为什么会这样?
我知道这里有很多 for loop 和 while loop 问题,但大多数都是 OP 代码的案例研究。我想要的是在执行for loop 或while loop 时对Python 结构本身和语言的一些底层操作进行更一般的解释。另外,在这种情况下,我指的是 Python 2.7.11。如果您能指出 3.5.1 在结构方面的差异,我将不胜感激。非常感谢。
【问题讨论】:
-
我真的不知道你期待什么样的答案。您似乎已经知道 while 和 for 循环是如何工作的。对变量赋值的理解是这里的问题吗?
-
在 python 中,如果不先为其赋值,就不能使用变量。因此,当您不设置
x = 1时,python 将不知道x是什么。在for循环中,num用作迭代器,因此此命令将其值设置为每个循环传递中列表中的每个值,range(5)生成从 0 到 4 的整数值的列表(数组) -
@timgeb 请参考我对pivanchy的回复。
标签: python python-2.7 loops for-loop while-loop