Python循环循环两次

0 投票
2 回答
536 浏览
提问于 2025-04-17 22:22

这里有一个循环,我找不到它为什么会循环两次而不是一次的原因。
希望有人能帮我 :)


这个循环现在可以正常工作了。谢谢。

以下是代码:

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

撰写回答