Добавить в корзинуПозвонить
Найти в Дзене
Мамкин сисадмин

Серия уроков Python #8. Неизменяемость и примитивные типы

Иногда разработчикам нужно вернуть положительное значение числа, которое задали. Для этого в Python есть специальная функция. Функция abs() делает число неотрицательным: balance = -200 amount = abs(balance)
print(amount) # => 200 На экран выведется 200. Но если вызвать print(balance), то на экран выведется старое значение: -200. Функция abs() вернула новые данные, но не изменила переданные в нее. Она не могла это сделать, потому что примитивные типы в Python — неизменяемы. Напомним, что примитивные типы — это простые типы данных, которые встроены в сам язык программирования. Например, число или строка. В уроках и заданиях мы будем использовать и собственные, и готовые функции. Но никакие функции не смогут изменять данные примитивных типов. Число -200 — это значение переменной balance, и само число нельзя изменить. Но переменная называется переменной, потому что ее значение можно заменить на другое. То есть мы можем написать: balance = -200 balance = abs(balance)
print(balance) Сна

Иногда разработчикам нужно вернуть положительное значение числа, которое задали. Для этого в Python есть специальная функция.

Функция abs() делает число неотрицательным:

balance = -200
amount = abs(balance)
print(amount) # => 200

На экран выведется 200. Но если вызвать print(balance), то на экран выведется старое значение: -200. Функция abs() вернула новые данные, но не изменила переданные в нее. Она не могла это сделать, потому что примитивные типы в Python — неизменяемы.

Напомним, что примитивные типы — это простые типы данных, которые встроены в сам язык программирования. Например, число или строка.

В уроках и заданиях мы будем использовать и собственные, и готовые функции. Но никакие функции не смогут изменять данные примитивных типов. Число -200 — это значение переменной balance, и само число нельзя изменить. Но переменная называется переменной, потому что ее значение можно заменить на другое. То есть мы можем написать:

balance = -200
balance = abs(balance)
print(balance)

Сначала в переменную записывается одно значение, а потом в ту же переменную вместо предыдущего значения записывается новое — то, что вернет вызов abs(balance).

Строку balance = abs(balance) можно прочитать так: «записать в переменную balance то, что вернет вызов функции abs(), если передать в нее текущее значение переменной balance». Мы не изменили число, но изменили переменную — записали в нее новое число вместо старого.

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

Наверняка, вы регулярно сталкиваетесь с багами и ошибками в приложениях. Многие из них появляются, потому что изменили значения переменных. Такие ошибки сложно найти и исправить. Единственное место, где без изменения значений переменных никак — это циклы, с которыми вы познакомитесь позже. Во всех остальных местах относитесь к переменным как к константам — неизменяемым сущностям. Создавайте переменные, задавайте им значения и больше не меняйте без необходимости.

Спасибо, что дочитали до конца. Вы меня очень поддержите, если поставите "Лайк", оставите комментарий или ПОДПИШИТЕСЬ на мой канал :)