【发布时间】:2022-10-12 23:44:42
【问题描述】:
我正在尝试使用 2 个 while 循环来返回值 i 和 j。
下面:
i=0
j=0
while i < 50:
while j < 5:
print('i: ' + str(i))
print('j: ' + str(j))
j += 1
i += 10
结果是:
i: 0
j: 0
i: 0
j: 1
i: 0
j: 2
i: 0
j: 3
i: 0
j: 4
但是我试图得到:
i: 0
j: 0
i: 0
j: 1
i: 0
j: 2
i: 0
j: 3
i: 0
j: 4
i: 10
j: 1
i: 10
j: 2
i: 10
j: 3
i: 10
j: 4
i: 20
j: 1
i: 20
j: 2
i: 20
j: 3
i: 20
j: 4
etc...
我哪里错了?
【问题讨论】:
-
请给出第一个示例的完整输出。不可能以
i结尾,打印为0。 -
在您的代码中,您在哪里看到
j被重置为0,或以任何方式减少?您在两个循环之外将其初始化为0一次。之后,它只会从内部循环内部发生变化。因此,一旦内部循环第一次完成,它将永远不会再次运行。你真的应该学会调试这种东西。 -
Cory 展示了如何解决您的问题。我还建议您了解
range()功能。您可以将它与for循环一起使用来获得所需的输出,而不是while循环。 -
另外,[这篇文章[(ericlippert.com/2014/03/05/how-to-debug-small-programs) 有一些调试代码的好技巧。
标签: python