N-puzzle program solved using A* search
Are there any suggestions regarding readability and variable names?


You should follow PEP8, the official Python coding style guide.
For example:


Put spaces around operators. Instead of var%3==0, write as var % 3 == 0
Put spaces after commas separating parameters. Instead of Board(fBoard,99,None), write as Board(fBoard, 99, None)
Use snake_case for naming variables and methods instead of camelCase
Use PascalCase for naming classes


What is an fBoard? It's not easy to guess, so that's not a good name.

Don't execute code in global scope

These lines are executed immediately when the script is imported,
which is not good:


n=3
fBoard = [1,2,3,
          4,5,6,
          7,8,0]

board = [i for i in range(9)]
shuffle(board)

print(board)
aStar()



It would be better to move them into a main function,
and call that function from a if __name__ == '__main__' guard, like this:

def main():
    n=3
    fBoard = [1,2,3,
              4,5,6,
              7,8,0]

    board = [i for i in range(9)]
    shuffle(board)

    print(board)
    aStar()

if __name__ == '__main__':
    main()


This will make your script more reusable, and it will help you avoid some obscure bugs that can happen by variable shadowing.

Get ready for Python 3

It's not too difficult to make this script work with Python 3 too.
All it takes is adapting your print statements a little bit.
In some cases it's as trivial as adding (...), for example:


print "\n"



Rewrite as:

print("\n")


When you don't want the automatic newline, for example here:


print "\n",self._array[var],",",



You can add the end='' parameter:

print("\n",self._array[var],",", end='')