Повторное присваивание
Одно имя может последовательно связываться с разными значениями. После нового присваивания обращение к имени использует новое значение; прежний вывод на экран при этом не переписывается.
greeting = "Father!"
print(greeting)
greeting = "Mother!"
print(greeting)
Программа выводит сначала Father!, затем Mother!.
Задание источника
Имеется переменная delivery_status со значением "in transit". Измените её на "delivered" и выведите результат.
delivery_status = "in transit"
delivery_status = "delivered"
print(delivery_status)
Единственная строка вывода — delivered. Первая строка показывает исходное состояние, вторая — его обновление.
Не создавать другое имя случайно
Присваивание delivery_Status = "delivered" не обновит delivery_status: это другое имя из-за заглавной буквы. Аналогично опечатка в названии может создать новую переменную, оставив старую без изменений.
Когда вычисляется значение
Присваивание выполняется при достижении соответствующей строки программы. Поэтому print(), поставленный перед обновлением, увидит прежний статус. Чтобы отлаживать подобный код, полезно последовательно отмечать значение каждого имени после каждой выполненной инструкции.
В этом упражнении речь идёт только о строковой переменной в учебной программе. Ни один реальный заказ не обновляется, никаких запросов к магазину программа не делает. Такая простая модель позволяет освоить изменение состояния до работы с внешними системами.
Hexlet / Code Basics и участники · Исходный урок и решение · GNU AGPL v3. Упражнение и решение сохранены.