我对python中的迭代过程感到困惑
我有:
numbers = [0,1,2,3,4,5]
for i in numbers:
v = numbers
print v
这是循环的结束
但是,在C,C ++,Java中,我们知道{ }
内的行将重复执行,或者如果没有给出花括号,那么循环后的下一个语句,但我在这里很困惑。
迭代中将执行多少行?
它取决于缩进吗?
答案 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]