Переменные в Python: как хранить значения
Автор: Казачкин Даниил Михайлович · Обновлено
Переменная связывает имя со значением. Команда присваивания выполняется справа налево: Python сначала вычисляет выражение после =, затем сохраняет полученный объект под именем…
Переменная связывает имя со значением. Команда присваивания выполняется справа налево: Python сначала вычисляет выражение после =, затем сохраняет полученный объект под именем слева. Последующее присваивание тому же имени заменяет прежнюю связь.
Состояние программы меняется по шагам
student = 'Аня'
solved = 4
solved = solved + 2
print(student, 'решила задач:', solved)Ожидаемый вывод:
Аня решила задач: 6До третьей строки solved хранит число 4. В правой части третьей строки используется старое значение, к нему прибавляется 2, и результат 6 снова записывается в solved. Это не математическое равенство, а команда изменения состояния.
Имена помогают проверять решение
Имя может содержать латинские буквы, цифры и подчёркивания, но не должно начинаться с цифры. Для нескольких слов принят стиль snake_case: max_score, lesson_time. Имена list, str или sum лучше не использовать, потому что так легко закрыть доступ к встроенным возможностям Python.
Регистр важен: score и Score — разные имена. Типичная ошибка NameError возникает, когда переменную читают до присваивания или допускают опечатку. Найдите самое первое место, где имя должно было получить значение, и сравните написание символ за символом.
Мини-задача с трассировкой
Создайте переменные name, grade и minutes. Увеличьте minutes на 15 и выведите понятное предложение со всеми значениями. Затем вручную составьте таблицу из двух столбцов: «после строки» и «значение minutes». Для дополнительной проверки поменяйте исходное число и убедитесь, что итог пересчитался без изменения текста в print. Навык освоен, если вы можете объяснить, почему выражение minutes = minutes + 15 допустимо в программе.
Таблица изменения состояния
Для программы с balance = 100 выполните операции: прибавить 25, вычесть 40 и удвоить остаток. До запуска заполните таблицу значений после каждой строки. В коде используйте одно имя balance, а промежуточную печать снабдите подписью шага. Затем перепишите вариант с тремя разными именами и сравните читаемость. Намеренно обратитесь к Balance с заглавной буквы, прочитайте NameError и найдите различие. Завершите работу формулировкой: какое значение использует правая часть присваивания и в какой момент имя начинает указывать на новый объект.
Практикум: состояние заказа и безопасные имена
Опишите заказ переменными item_name, unit_price, quantity и is_paid. Вычислите итог, затем измените количество и повторно вычислите сумму. Перед каждой строкой предскажите значения всех переменных. Попробуйте присвоить число имени, начинающемуся с цифры, и использовать зарезервированное слово; разберите синтаксическую ошибку. Отдельно покажите, что quantity = quantity + 1 обновляет привязку, а не математическое равенство. Имена должны отражать единицы и смысл.
Контрольная точка
После old_quantity = quantity и последующего изменения quantity какое значение останется в old_quantity для целых чисел? Проследите оба имени, не опираясь на визуальную близость строк.
Частые вопросы
Переменная в Python — это коробка с фиксированным типом?
Точнее считать её именем, связанным со значением. Имя можно связать с новым объектом другого типа, хотя в учебной программе лучше сохранять один понятный смысл и не менять тип без необходимости.