Python: Изменение переменной
Само слово «переменная» подсказывает, что её значение может меняться. Это одна из главных причин, почему переменные вообще существуют.
Вот простой пример:
# greeting — переводится как приветствие
greeting = 'Father!'
print(greeting) # => Father!
greeting = 'Mother!'
print(greeting) # => Mother!
Здесь мы сначала записали в переменную одну строку (Father!), потом — другую (Mother!). Имя переменной не изменилось, но значение внутри стало другим.
Зачем вообще менять значение?
В реальных программах переменные меняются постоянно. Вот несколько причин:
- Программа реагирует на действия пользователя. Например, пока вы вводите какие-то данные, в формы на сайте, они, в этот момент, вполне вероятно, постоянно меняют переменные, которые эти данные содержат
- Промежуточные результаты. Часто данные проходят через серию преобразований — на каждом этапе переменная обновляется новым значением. Подобный механизм даже есть в калькуляторах, когда промежуточные значения сохраняются с помощью клавиш
m+
илиm-
. - Хранение состояния. Если вы пишете игру, то положение персонажа, его здоровье, счёт, текущий уровень — всё это переменные, которые постоянно меняются.
Переменные создаются по мере использования
В Python переменную не нужно «объявлять заранее» — она появляется в момент, когда вы впервые записываете в неё значение:
name = 'Arya' # переменная создаётся здесь
Если потом вы снова напишете name = ..., это перезапишет старое значение. Так работает большинство современных языков программирования.
⚠️ Но важно помнить: переменную нельзя использовать раньше, чем она создана.
print(name) # Ошибка! Переменная ещё не создана
name = 'Arya'
Python не знает, что такое name, потому что вы ещё ничего туда не записали. При запуске программа остановится и покажет сообщение об ошибке.
✅ Правильный порядок:
name = 'Arya' # Сначала создаём
print(name) # Потом используем
Почему это важно
Переменные — это гибкий способ хранить данные, которые могут изменяться в процессе выполнения программы. Благодаря этому можно писать программы, которые ведут себя по-разному в зависимости от условий, действий пользователя или результатов вычислений.
Но у гибкости есть и обратная сторона. Иногда сложно сразу понять, что именно записано в переменную в тот или иной момент времени. Разработчику приходится отслеживать, где и как она изменилась — особенно если код длинный.
Именно это делают во время отладки — когда пытаются разобраться, почему программа работает не так, как задумано. Проверяют значения переменных, отслеживают порядок выполнения кода, ищут, где что-то пошло не так.
Задание
В упражнении определена переменная, внутри которой содержится строка. Переопределите значение этой переменной и присвойте ей строку, в которой расположите символы первоначальной строки в обратном порядке.
Обратите внимание: в данном задании вам предстоит писать код между строчками с комментариями # BEGIN
и # END
Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект
Если вы зашли в тупик, то самое время поговорить с нашим асситентом Тота во вкладке "ИИ-помощник":
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи. В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в обратной связи нашего сообщества
Ваше упражнение проверяется по этим тестам
from hexlet.test import expect_output
def test(capsys):
expected = "anneirB"
expect_output(capsys, expected)
Решение учителя откроется через:
20:00
