执行时,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?
因为range(0)返回一个空列表[]
,所以内部循环在第一次运行时不执行任何操作.
让我们来看看
第一次运行
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