How is python assignment operator creating deep copy ? : a =2

b = a

b = 3

print (b,a)
3 2

I expect the value of "a" also to change to 3 , if b is only pointing to a's memory space and does not have it's own memory.

I am sure there is a very simple explanation which i am missing.
Thanks already!!