Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Неизменяемость и примитивные типы Основы Python

Иногда разработчикам нужно вернуть положительное значение числа, которое задали. Для этого в 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». Мы не изменили число, но изменили переменную — записали в нее новое число вместо старого.

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

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


Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Python-разработчик
Профессия
с нуля
Разработка веб-приложений на Django
2 февраля 10 месяцев
Иконка программы Аналитик данных
Профессия
В разработке с нуля
Сбор, анализ и интерпретация данных
16 марта 8 месяцев

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»