了解 Python 中嵌套循环的控制结构
Understanding control structure of nested loops in Python
下面的所有选项都会产生相同的输出,但我不太明白为什么。有谁能解释为什么在每一行上为 j 打印多个值?我认为它会在每次设置为 0 时打印 0,或者打印 1、2、3、4。
选项 1:
for i in range(1, 6):
j = 0
while j < i:
print(j, end = " ")
j += 1
print("")
Option 2:
for i in range(1, 6):
for j in range(0, i):
print(j, end = " ")
print("")
Option 3:
i = 1
while i < 6:
j = 0
while j < i:
print(j, end = " ")
j += 1
i += 1
print("")
输出:
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
由于内部while/for
循环,一个或多个数字打印在一行上。
随着i
的值在外循环递增,嵌套迭代的次数随着i
的值的增加而增加。
由于第一个 print
语句的 end=" "
参数,数字在内循环中打印在同一行上,下一个序列出现在新行上,因为第二个 print
外部迭代中的语句不包含任何此类参数。
为了更好地理解,对您的代码进行以下更改,一项一项地进行测试 运行 查看效果:
- 将内循环中的
i
替换为某个常量值
- 将
end = " "
中的 space 替换为其他内容,例如end = "x"
下面的所有选项都会产生相同的输出,但我不太明白为什么。有谁能解释为什么在每一行上为 j 打印多个值?我认为它会在每次设置为 0 时打印 0,或者打印 1、2、3、4。
选项 1:
for i in range(1, 6):
j = 0
while j < i:
print(j, end = " ")
j += 1
print("")
Option 2:
for i in range(1, 6):
for j in range(0, i):
print(j, end = " ")
print("")
Option 3:
i = 1
while i < 6:
j = 0
while j < i:
print(j, end = " ")
j += 1
i += 1
print("")
输出:
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
由于内部while/for
循环,一个或多个数字打印在一行上。
随着i
的值在外循环递增,嵌套迭代的次数随着i
的值的增加而增加。
由于第一个 print
语句的 end=" "
参数,数字在内循环中打印在同一行上,下一个序列出现在新行上,因为第二个 print
外部迭代中的语句不包含任何此类参数。
为了更好地理解,对您的代码进行以下更改,一项一项地进行测试 运行 查看效果:
- 将内循环中的
i
替换为某个常量值 - 将
end = " "
中的 space 替换为其他内容,例如end = "x"