Python: Изменение переменной
Само слово "переменная" подсказывает, что ее значение может меняться. Это одна из главных причин, почему переменные вообще существуют.
Вот простой пример:
# greeting переводится как приветствие
greeting = 'Father!'
print(greeting) # => Father!
greeting = 'Mother!'
print(greeting) # => Mother!Здесь мы сначала записали в переменную одну строку (Father!), потом другую (Mother!). Имя переменной не изменилось, но значение внутри стало другим.
До: greeting ──→ 'Father!'
╳
После: greeting ──→ 'Mother!'Зачем вообще менять значение?
В реальных программах переменные меняются постоянно. Вот несколько причин:
- Программа реагирует на действия пользователя. Например, пока вы вводите какие-то данные, в формы на сайте, они, в этот момент, вполне вероятно, постоянно меняют переменные, которые эти данные содержат
- Промежуточные результаты. Часто данные проходят через серию преобразований, и на каждом этапе переменная обновляется новым значением. Подобный механизм даже есть в калькуляторах, когда промежуточные значения сохраняются с помощью клавиш
m+илиm-. - Хранение состояния. Если вы пишете игру, то положение персонажа, его здоровье, счет и текущий уровень являются переменными, которые постоянно меняются.
Переменные создаются по мере использования
В Python переменную не нужно "объявлять заранее": она появляется в момент, когда вы впервые записываете в нее значение:
name = 'Arya' # переменная создается здесьЕсли потом вы снова напишете name = ..., это перезапишет старое значение. Так работает большинство современных языков программирования.
Почему это важно
Переменные представляют собой гибкий способ хранить данные, которые могут изменяться в процессе выполнения программы. Благодаря этому можно писать программы, которые ведут себя по-разному в зависимости от условий, действий пользователя или результатов вычислений.
Но у гибкости есть и обратная сторона. Иногда сложно сразу понять, что именно записано в переменную в тот или иной момент времени. Разработчику приходится отслеживать, где и как она изменилась, особенно если код длинный.
Именно это делают во время отладки: пытаются разобраться, почему программа работает иначе, чем задумано. Проверяют значения переменных, отслеживают порядок выполнения кода, ищут, где что-то пошло не так.
Задание
Статус заказа обновляется по мере его продвижения. В начале заказ находится «в пути», затем переходит в статус «доставлен».
В упражнении определена переменная delivery_status со значением "в пути". Переопределите ее значение на "доставлен" и выведите на экран.
Пример переопределения переменной:
some_var = 'старое значение'
some_var = 'новое значение'
print(some_var) # => новое значениеКоманда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект
Если вы зашли в тупик, то самое время поговорить с нашим асситентом Тота во вкладке "ИИ-помощник":
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи. В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в обратной связи нашего сообщества
Ваше упражнение проверяется по этим тестам
import runpy
def test(capsys):
expected = "доставлен"
runpy.run_module('solution')
out, _ = capsys.readouterr()
assert out.strip() == expectedРешение учителя откроется через:
20:00
