Python嵌套范围函数

时间:2015-12-16 14:52:22

标签: python range

执行时,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?

2 个答案:

答案 0 :(得分:7)

因为range(0)返回一个空列表[],所以内部循环在第一次运行时不执行任何操作。

答案 1 :(得分:7)

让我们来看看这个

首次运行

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