【问题标题】:Python nested range functionPython嵌套范围函数
【发布时间】:2015-12-16 14:52:22
【问题描述】:

以下嵌套控制结构在Python中执行时的输出是什么?

for x in range(3):
    for y in range(x):
        print x,y

我知道答案是

1 0
2 0
2 1

但我不清楚为什么是这个输出。
我知道 range(3) 函数会给你 {0, 1, 2} 那么为什么第一个输出不是 0 0 而不是 1 0?

【问题讨论】:

  • 区间[0, 0)为空。
  • @Kay,基于数学+1。还要考虑manual,因为这是为range() 函数提供的示例之一。

标签: python range


【解决方案1】:

因为 range(0) 返回一个空列表[],所以内部循环第一次运行时什么都不做。

【讨论】:

    【解决方案2】:

    让我们来看看这个

    首次运行

    x = 0
    range(0) is []
    the print is never reached
    

    第二次运行

    x = 1
    range(1) is [0] <-- one element
    print is called once with 1 0
    

    第三次运行

    x = 2
    range(2) is [0,1] <-- two elements
    print is called twice with 2 0 and 2 1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-25
      • 2015-03-14
      • 1970-01-01
      相关资源
      最近更新 更多