I try to explain in the easiest way:
With:
a.append(5)
you are calling the function that adds something (in this case 5) to a
With:
a = a.append(5)
you are saying that a is equal the result of the funcion .append(). But
append just modifies an existing list, it does not returns anything, and it does not, as you thought, return a new list with the element appended.