Python 嵌套范围函数

问题描述 投票:0回答:3

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?

python range
3个回答
7
投票

因为 range(0) 返回一个空列表

[]
,所以内部循环第一次运行时不执行任何操作。


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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.