С помощью простой графики

В Python переменные относятся к 2 большим категориям: изменяемые и неизменяемые. На простом английском языке mutable означает 'изменяемый', immutable означает 'неизменяемый'.

Они названы так потому, что вы можете изменить значение изменяемой переменной, хранящейся по определенному адресу памяти, но вы не можете изменить значение неизменяемой переменной. Если вы попытаетесь это сделать, все, что вам нужно сделать, это создать новую переменную по другому адресу памяти.

Однако изменяемая переменная предоставляет различные методы для изменения ее значения.

Важный практический эффект, который вы должны помнить, заключается в том, что изменяемые и неизменяемые переменные ведут себя по-разному, когда они назначаются другой переменной или когда они отправляются в функцию. Если вы присвоите изменяемую переменную другой переменной, новая переменная будет ссылаться на тот же объект, что и первая.

Но если вы назначаете неизменяемую переменную новой переменной, создается копия значения, и новая переменная будет ссылаться на эту новую копию >.

Из-за этого вы должны быть осторожны при отправке изменяемой переменной в функцию — если вы измените ее внутри функции, она также изменится в своем исходном местоположении, даже не возвращая ее. Если вы хотите избежать этого, вы можете явно создать его копию.