函数返回意外缩进

时间:2020-04-21 18:09:32

标签: python-3.x

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:语法无效 我试图删除返回值但没有成功/我试图创建一个函数来检查位置是否空闲(在列表中以“。”表示),然后从位置检查动物形式是否不正确获取完整的地方,如果免费则返回true。

1 个答案:

答案 0 :(得分:0)

您没有正确索引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))