Python:为什么跳过我的'for'循环?

Python:为什么跳过我的'for'循环?,python,python-3.x,for-loop,Python,Python 3.x,For Loop,我有以下代码: for i in range(40): print("execution:", i, end=" ") if player_y - i >= 0: if roomMap[player_y - i][player_x] == 1: roomMap[player_y - i][player_x] = 3 变量player\u x、player\u y和列表roomMap已经定

我有以下代码:

for i in range(40):
    print("execution:", i, end="    ")
    if player_y - i >= 0:
        if roomMap[player_y - i][player_x] == 1:
            roomMap[player_y - i][player_x] = 3

变量
player\u x
player\u y
和列表
roomMap
已经定义,但它没有任何作用,我不确定发生了什么。

循环无法运行有多个原因

  • 您有一个条件语句(if)围绕它,而代码恰好没有通过该分支运行
  • 在进入该循环之前,您可能有一个return语句,因此代码终止
您可以采取以下步骤来解决此问题:

  • 尝试使用调试器并查看代码是否进入此循环
  • 您还可以使用“print()”语句来caveman调试它,也可以使用
    print(“我在循环中”)
    查看是否可以在控制台中从循环中打印它

检查条件是否正确。此循环必须运行,并且必须进行打印。如果不是,那么这个循环从一开始就不会到达,所以问题是由您没有包含在这里的代码引起的。同意。正如@Carcigenicate所提到的,在这段代码之前很可能发生了一些事情。for循环之前的
player_y
player_x
值是什么?我的其余代码超过200行,但我以前在没有它的情况下对其进行了测试,它工作正常。player_x为5,player_y为2,roomMap是循环中循环的一个40x40平方的零,边上有一个。指向此代码的路径不得执行。至少,我们需要看看是什么条件导致这个循环被达到,以及这些条件涉及到什么数据。从打印的想法来看,我得到:
执行:0在循环中执行:1在循环中执行:2在循环中执行
,但没有其他(除了岩石的打印)那么,是否有一个条件语句围绕着它?我将代码更改为:
对于范围(40)内的I:print(“执行:”,I,end=“”)如果player_y-I>=0:print(“循环中”),如果roomMap[player_y-I][player_x]==1:print(“循环中”,I)roomMap[player_y-I][player_x]=3其他:print(player_y-i)
并且它输出:
执行:0循环执行:1循环执行:2循环执行:3-1等等…(15个字符)你能至少给我看一下控制台打印的内容吗?以确定它的确切位置吗?