无法理解为什么此python代码无法正常工作

时间:2018-12-09 19:05:22

标签: python-3.x for-loop

我是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 个答案:

答案 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)