嵌套的循环变得混乱,尤其是它们的迭代

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

我有这段代码,如果我输入数字 3,它会输出 0 0 和 1。

    num = int(input("Enter number"))
      for i in range(num):
        for j in range(i):
          print(j)

问题是我知道它打印第一个 0,因为 range(0) 阻止了 for j 代码在 for i 的第一次迭代中执行。当 i = 1 时,它显然输出 0,因为它是 J 的第一次迭代。但是当 i = 2 时,我知道 j 循环运行两次,因为 range(2) 但问题是我很困惑为什么它输出 0 和 1 而不是1 和 2 因为它是 J 的当前迭代。任何人都可以解释这个问题并教一些有关嵌套 for 循环的知识吗?

我尝试了代码并期望 0, 1, 2 但我得到了 0 0 1.

python for-loop nested-loops
1个回答
0
投票

因为

for j
循环的每次运行都重新开始。您正在运行三个循环:一个是
range(0)
什么都不做,一个是
range(1)
会产生
0
,另一个是
range(2)
会产生
0 1
。 它与:

相同
for i in range(3):
   print(list(range(i))
© www.soinside.com 2019 - 2024. All rights reserved.