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
是的范围(x)是[0,1,2,3,...x-1] 简而言之,range(x) 是一个从 0 开始并递增的 x 元素列表。 如前所述,这会导致第二个循环的第一次运行永远不会执行。