def magic_square_test(my_matrix): iSize = len(my_matrix[0]) sum_list = [] #Horizontal Part: sum_list.extend([sum (lines) for lines in my_matrix]) #Vertical Part: for col in range(iSize): sum_list.append(sum(row[col] for row in my_matrix)) #Diagonals Part result1 = 0 for i in range(0,iSize): result1 +=my_matrix[i][i] sum_list.append(result1) result2 = 0 for i in range(iSize-1,-1,-1): result2 +=my_matrix[i][i] sum_list.append(result2) if len(set(sum_list))>1: return False return True m=[[7, 12, 1, 14], [2, 13, 8, 11], [16, 3, 10, 5], [9, 6, 15, 4]] print(magic_square_test(m)); m=[[2, 7, 6], [9, 5, 1], [4, 3, 8]] print(magic_square_test(m)); m=[[2, 7, 6], [9, 5, 1], [4, 3, 7]] print(magic_square_test(m));