我是python编程的新手 . 为什么这段代码不起作用?
# Print out 2,5,8,11 using `for` loop and `range()`.
for x in range (2,12):
print (x)
x=x+3
我知道以下内容将使该程序正常运行
# Print out 2,5,8,11 using `for` loop and `range()`.
for x in range (2,12,3):
print (x)
但我无法理解为什么第一个没有给出所需的结果,而等效代码可以在C / C中工作 .
2 回答
使用 range() 函数时,不能递增 x 的值 . 有两种方法可以获得所需的输出 .
第一种方法:
print [x for x in range(2,12,3)]
第二种方法:
for x in range(2,12, 3):
print(x)
即使您尝试将 x 增加为
x=x+3
,它也会在每次迭代中更改,并将新值从2增加到12,具体取决于已经进行了多少次迭代(如果循环处于第4个周期,则x将更新为 4 在第4个周期开始时) . 即使您在print
语句之前放置了x=x+3
,它只需打印 "iteration + 3"所以这段代码会产生这样的输出;
5 6 7 8 9 10 11 12 13 14
因此,当您在Python中使用 for loop 时,无法更新
x
然后在下一次迭代中使用此更新版本 .