我是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中工作。
答案 0 :(得分:0)
即使您尝试将 x 递增为x=x+3
,它也会在每次迭代中更改,并将新值从2改为12,具体取决于进行了多少次迭代(如果循环处于第4个周期,则x将在第4个周期开始时更新为 4 。即使您将x=x+3
放在print
语句之前,它所做的只是打印“ iteration + 3”
for x in range (2,12):
print (x)
x=x+3
所以这段代码将产生这样的输出;
5 6 7 8 9 10 11 12 13 14
因此,当您在Python中使用 for循环时,无法更新x
,然后在下一次迭代中使用此更新版本。
答案 1 :(得分:0)
使用 range()函数时,不能增加 x 的值。有两种方法可以获取所需的输出。
第一种方法:
打印[x代表x在范围(2,12,3)中的x]
第二种方法:
对于范围在(2,12,3)中的x:
打印(x)