Python循环循环两次
这里有一个循环,我找不到它为什么会循环两次而不是一次的原因。
希望有人能帮我 :)
这个循环现在可以正常工作了。谢谢。
以下是代码:
gridX = 0
gridY = 0
while gridX <= 4 and gridY < 4:
if gridX == 4:
gridY += 1
gridX = 0
print("Y "+str(gridY))
else:
gridX += 1
print("X "+str(gridX))
它应该输出这个:
X 1
X 2
X 3
X 4
Y 1
X 1
X 2
X 3
X 4
Y 2
X 1
X 2
X 3
X 4
Y 3
X 1
X 2
X 3
X 4
Y 4
如果有更好的方法来得到这个结果,我很欢迎。
2 个回答
0
虽然Izaaz给了你一个更好的方法来做这件事,但你可以扩展输出,以更清楚地看到你的代码在做什么。像这样逐步执行你的代码,可以帮助你准确理解代码的运行情况,这样你就可以和你预期的结果进行对比。
gridX = 0
gridY = 0
while gridX <= 4 and gridY < 4:
if gridX == 4:
gridY += 1
gridX = 0
print("IF- X "+str(gridX)+" Y "+str(gridY))
else:
gridX += 1
print("ELSE- X "+str(gridX)+" Y "+str(gridY))
这会给你带来 --
ELSE- X 1 Y 0
ELSE- X 2 Y 0
ELSE- X 3 Y 0
ELSE- X 4 Y 0
IF- X 0 Y 1
ELSE- X 1 Y 1
ELSE- X 2 Y 1
ELSE- X 3 Y 1
ELSE- X 4 Y 1
IF- X 0 Y 2
ELSE- X 1 Y 2
ELSE- X 2 Y 2
ELSE- X 3 Y 2
ELSE- X 4 Y 2
IF- X 0 Y 3
ELSE- X 1 Y 3
ELSE- X 2 Y 3
ELSE- X 3 Y 3
ELSE- X 4 Y 3
IF- X 0 Y 4
通过跟踪这个过程,你可以看到你得到了四次else块,然后一次if块,再然后四次else块....
1
也许更好的做法是使用双重循环。
for gridY in range(0,4):
print gridY
for gridX in range(0,4):
print gridX