关于python循环的困惑

时间:2013-03-27 19:39:49

标签: python

我对python中的迭代过程感到困惑

我有:

numbers = [0,1,2,3,4,5]
for i in numbers:
    v = numbers
    print v

这是循环的结束 但是,在C,C ++,Java中,我们知道{ }内的行将重复执行,或者如果没有给出花括号,那么循环后的下一个语句,但我在这里很困惑。 迭代中将执行多少行? 它取决于缩进吗?

4 个答案:

答案 0 :(得分:6)

在Python中,缩进而不是括号确定块范围,因此在此示例中,每次循环迭代时,两个缩进行都将执行一次。

对于来自C / Java语言系列的程序员来说,这是关于Python的唯一奇怪的事情,但你很快就习惯了。

答案 1 :(得分:4)

Python使用缩进来分隔代码块。尝试将此特定代码视为:

numbers = [0,1,2,3,4,5]
for i in numbers:  #{
    v = numbers
    print v
#}

这是完全有效的Python代码,其中包含大括号的注释,您会期望它们使用不同的语言。

Python执行单个语句的对应物是:

numbers = [0,1,2,3,4,5]
for i in numbers: v = numbers
print v

并且每个循环仅执行v = numbers(通过使用;,您可以在同一行中添加语句。)

答案 2 :(得分:1)

在python中,缩进很重要。在您的代码中,这两行都将在for循环的每次迭代中执行:

   v = numbers
   print v

答案 3 :(得分:1)

作为一个额外的注释,我认为你的原始代码没有做我认为你想要它做的事情 - 这是在他们自己的行上打印数字1-5。它应该是(使用Python 3):

numbers = [0,1,2,3,4,5]
for i in numbers:
    print(i)

如果您运行以下代码:

numbers = [0,1,2,3,4,5]
v = numbers
print(v)

你会得到:

[0, 1, 2, 3, 4, 5]