嵌套 For 循环 - 理解概念的问题

Nested For Loop - A problem with understanding the concept

欢迎

我大致了解循环的概念及其工作原理。然而,我遇到了一个我无法理解的人

for i in range(10):
    for j in range(i):
        print(i, end="")
print()

这个循环将显示一个数字列表

1
22
333
4444
55555
666666
7777777
88888888
999999999

这正是我想要的...但我不明白为什么它在每一行中打印相同的数字。如果打印了“j”变量,程序就会像我预期的那样工作。

0
01
012
0123
01234
012345
0123456
01234567
012345678

有人知道这是为什么吗?

编辑:

感谢您的回答。我终于明白了(并且觉得自己以前没有这么傻)

重复相同的字符,因为第二个 for 循环正在打印 i,外循环的值。如果它正在打印 j ,它会看起来像你期望的那样。 i 的值只有在 j 循环结束后才会改变。在任何内部循环完成之前,外部循环不会重复。

如果即使在您打印 j 之后这对您来说仍然不是很明显,那么您对 ​​for 循环的了解似乎缺乏一些基本知识。学习使用调试器会让您受益匪浅,这对任何软件工程师来说都是至关重要的第一天知识。

range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# your loop
for i in range(10):
    for j in range(i):
        print(i, end="")

让我分解一下

range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# replacing 'i' with 'j'
for i in range(10):
    for j in range(i):
        print(j, end="")
i = 0 #range(0)
nil 
i = 1
#in nested loop range(1) = [0]
0
i = 2
#range(2) = [0,1]
0 1
#range(3) = [0, 1, 2]
0 1 2
#range(4) = [0, 1, 2, 3]
0 1 2 3
#range(5) = [0, 1, 2, 3, 4]
0 1 2 3 4

我希望它现在有意义