执行时,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 :(得分: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