【问题标题】:why incremental varible part of range not getting latest value?为什么范围的增量变量部分没有获得最新值?
【发布时间】:2018-02-21 06:29:14
【问题描述】:

根据一段代码,我希望每次流量增加 +2 时范围都会发生变化。所以我预计 0,8 2,8 4,6 6,8。 但它遵循线性增量,如 1,2,3,4,5,6,7,8 而不是 2,4,6,8

代码:

for i in range(i,count):
    i+=2
    print i

输出:

2
3
4
5
6
7
8
9
10
11

【问题讨论】:

  • 要么循环设置i,要么你设置。如果两者兼而有之,那就不多了。
  • 范围只计算一次
  • 范围的语法是(开始、停止、步进)。在您的情况下,步骤是 2,但是开始和停止呢?
  • Python for 循环不像 C /Java for 循环那样工作。它们的工作方式类似于 Java foreach 循环。

标签: python python-2.7 range


【解决方案1】:

Range in pydocs

范围类型表示一个不可变的数字序列,通常用于在for循环中循环特定次数。

这意味着在每次迭代中,您的循环都会从列表中获取下一个元素,并且“+2”部分会被忽略。 (覆盖)

【讨论】:

    【解决方案2】:

    i 在每次迭代时重置,使用不同的变量来递增,例如:

    j = 0
    for i in range(i,count):
      j+=2
      print j
    

    【讨论】:

      【解决方案3】:

      range 在每次迭代中将范围内的下一个值分配给i,使i+=2 无用。

      我建议你使用

      for i in range(0,10,2): print(i)

      【讨论】:

        猜你喜欢
        • 2023-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多