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: invalid syntax 我试图删除返回但没有成功/我正在尝试创建一个函数来检查位置是否空闲(由列表中的“.”表示)然后从如果动物形式没有完全到位,则位置,如果它是免费的,则返回 true。
解决方案
你没有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))
推荐阅读
- matlab - Matlab的viterbi算法在vitdec()函数中的实现
- java - 从匿名类内部访问方法范围内的变量
- python - 在 __getitem__ 中从 None 提高 KeyError(key)
- angular - 当使用“shareReplay”管道时,使用宽度的 HttpClient.get 是热的或冷的 Observable
- react-native - 运行 npm start 时出现 Invalid regular expression 错误
- python - 函数内部的 Pandas sort_values()。如何允许用户选择要排序的列?或者也许留空
- c++ - 如何使用 -v 调用查看 cmake 链接器错误(未定义符号)的详细信息?
- c# - ExpressionTree ExpressionVisitor 更改/替换查询 OrderBy 字段
- flutter - 颤振将变量从下拉菜单传递到另一个类得到错误的值
- github - Github GraphQL API v.4.0 游标错误