首页 > 解决方案 > 函数中返回的意外缩进

问题描述

lion1        =['L',1,[(0,0),(1,0)]]
lion2        =['L',2,[(0,0),(0,1),(1,1)]]
               ###########
girafe1      =['G',1,[(0,0),(1,0),(1,1)]]
girafe2      =['G',2,[(0,0),(1,0)]]
zebre1       =['Z',1,[(0,0),(1,0)]]
zebre2       =['Z',2,[(0,0),(0,1)]]
elephant1    =['E',1,[(0,0),(0,1)]]
elephant2    =['E',2,[(0,0),(1,0),(0,1)]]
Hippopotam1  =['H',1,[(0,0),(1,0)]]
Hippopotam2  =['H',2,[(0,0),(1,0),(2,0)]]
grille1=[["o","o","o","o","o","o","o","o","o"],["o","o",".",".",".",".",".","o","o"],["o",".",".",".",".",".",".",".","o"],["o",".",".",".",".",".",".",".","o"],["o","o",".",".",".",".",".","o","o"],["o","o","o","o","o","o","o","o","o"]]
Listes_de_tous_animaux=[lion1,lion2,girafe1,girafe2,zebre1,zebre2,elephant1,elephant2,Hippopotam1,Hippopotam2]
def place_libre(x,y,grille,animal):
        if grille[x][y]==".":#libre
            i=0
            temp=[(0,0),(0,0),(0,0)]
            for n in range(len(animal[2])):
                temp[i]=(x,y)+animal[2][n]
                i+=1
                if grille[temp[i][0][temp[i][1]]!=".":  #depuis position voir si la forme de l'animal correspond a des places vides
                    return False
            print(temp)
            return True
place_libre(3,2,grille1,zebre1)

错误是:SyntaxError: invalid syntax 我试图删除返回但没有成功/我正在尝试创建一个函数来检查位置是否空闲(由列表中的“.”表示)然后从如果动物形式没有完全到位,则位置,如果它是免费的,则返回 true。

标签: python-3.x

解决方案


你没有grille正确索引。此外,您可以使用像Black这样的格式化程序来使您的代码更具可读性。

lion1 = ["L", 1, [(0, 0), (1, 0)]]
lion2 = ["L", 2, [(0, 0), (0, 1), (1, 1)]]
###########
girafe1 = ["G", 1, [(0, 0), (1, 0), (1, 1)]]
girafe2 = ["G", 2, [(0, 0), (1, 0)]]
zebre1 = ["Z", 1, [(0, 0), (1, 0)]]
zebre2 = ["Z", 2, [(0, 0), (0, 1)]]
elephant1 = ["E", 1, [(0, 0), (0, 1)]]
elephant2 = ["E", 2, [(0, 0), (1, 0), (0, 1)]]
Hippopotam1 = ["H", 1, [(0, 0), (1, 0)]]
Hippopotam2 = ["H", 2, [(0, 0), (1, 0), (2, 0)]]
grille1 = [
    ["o", "o", "o", "o", "o", "o", "o", "o", "o"],
    ["o", "o", ".", ".", ".", ".", ".", "o", "o"],
    ["o", ".", ".", ".", ".", ".", ".", ".", "o"],
    ["o", ".", ".", ".", ".", ".", ".", ".", "o"],
    ["o", "o", ".", ".", ".", ".", ".", "o", "o"],
    ["o", "o", "o", "o", "o", "o", "o", "o", "o"],
]
Listes_de_tous_animaux = [
    lion1,
    lion2,
    girafe1,
    girafe2,
    zebre1,
    zebre2,
    elephant1,
    elephant2,
    Hippopotam1,
    Hippopotam2,
]


def place_libre(x, y, grille, animal):
    if grille[x][y] == ".":  # libre
        i = 0
        temp = [(0, 0), (0, 0), (0, 0)]
        for n in range(len(animal[2])):
            temp[i] = (x, y) + animal[2][n]
            i += 1
            if grille[temp[i][0]][temp[i][1]] != ".":
                return False  # depuis position voir si la forme de l'animal correspond a des #places vides

        print(temp)
        return True


print(place_libre(3, 2, grille1, zebre1))

推荐阅读