首页 文章

可以't understand why this python code isn'工作

提问于
浏览
-1

我是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

    使用 range() 函数时,不能递增 x 的值 . 有两种方法可以获得所需的输出 .

    第一种方法:

    print [x for x in range(2,12,3)]

    第二种方法:

    for x in range(2,12, 3):
    print(x)

  • 0

    即使您尝试将 x 增加为 x=x+3 ,它也会在每次迭代中更改,并将新值从2增加到12,具体取决于已经进行了多少次迭代(如果循环处于第4个周期,则x将更新为 4 在第4个周期开始时) . 即使您在 print 语句之前放置了 x=x+3 ,它只需打印 "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 loop 时,无法更新 x 然后在下一次迭代中使用此更新版本 .

相关问题