gpt4 book ai didi

python - 为什么我的 Python 函数不返回结果?

转载 作者:太空宇宙 更新时间:2023-11-03 15:02:20 25 4
gpt4 key购买 nike

我正在尝试编写一个 Python 函数,它可以在评估幻方时返回“True”或“False”。幻方是一个矩阵,其行和、列和以及两条对角线的和都相同。 (矩阵的一个对角线从左上角到右下角,另一个对角线从右上角到左下角。)

这是我的代码:

def isMagic(A3):
dim = A3.shape[0] * A3.shape[1]
construct = np.arange(1,dim+1)
if A3.shape[0] == A3.shape[1]:
exist = []
for r in range(len(A3)):
for c in range(len(A3)):
exist.append(A3[r,c] in construct)
if all(exist):
def all_same(items):
return all(x == items[0] for x in items)
dig_1 = sum(np.diag(A3))
dig_2 = sum(np.diag(np.fliplr(A3)))
dig = all_same(np.array([dig_1, dig_2]))
column = all_same(np.sum(A3, axis = 1))
row = all_same(np.sum(A3, axis = 0).transpose())
if all(dig, column, row):
return True
else:
return False

然而,当我尝试在幻方之一上测试我的代码时,该函数没有返回任何值:

test2 = np.matrix([[8, 1, 6],
[3, 5, 7],
[4, 9, 2]])
isMagic(test2) # True

我想知道是不是因为缩进?

最佳答案

对于前两个 if 语句 if A3.shape[0] == A3.shape[1]if all(exist),请注意,如果条件为假,则不会返回任何内容 (None)。我想如果不满足所有 if 条件,您想返回 False 。然后只需将 return False 放在函数的最后,以便在未达到 return True 时运行:

def isMagic(A3):
...
return False

关于python - 为什么我的 Python 函数不返回结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36503226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com