Comments 10
Как устроены переменные в Python
Можете объяснить, что нового Вы рассказали относительно учебников из интернета?
Не лучший пересказ того, что есть в интернете.
Например это:
https://pythonchik.ru/osnovy/peremennye-v-python
https://skillbox.ru/media/code/peremennye-v-python-chto-eto-takoe-i-kakie-oni-byvayut/
--------------------
Вот Алиса Яндекса рассказывает и дает ссылки на первоисточники :
Внутреннее представление переменных в языке Python заключается в том, что переменная хранит не само значение, а ссылку на его адрес в памяти. Это связано с динамической типизацией языка: значения присваиваются переменным не при компиляции, а во время выполнения программы. skillbox.rupracticum.yandex.ru
Структура переменных
Переменная состоит из трёх частей:
Имя (идентификатор) — название, придуманное программистом для обращения к переменной.
Значение — информация, которая хранится в памяти компьютера и с которой работает программа. Значение всегда принадлежит к какому-либо типу данных.
Адрес — номер ячейки памяти, в которой хранится значение переменной.
Тип переменной определяется исходя из значения, которое ей присвоено. Например, при присвоении строки в двойных или одинарных кавычках переменная имеет тип
str
, а при присвоении целого числа —
int
Примеры кода
Чтобы продемонстрировать внутреннее представление переменных, можно использовать функцию
id()
. Она возвращает уникальный идентификатор объекта, на который ссылается переменная. skillbox.rudevpractice.rupythonchik.ru
Пример:
x = 4
print(id(x)) # Выведет 2056817043856 — адрес объекта с числом 4.
Скопировать
В этом примере при инициализации переменной
x
программа создала объект с числом 4, принадлежащий к классу
int
. Внутри переменной содержится не сам объект, а его адрес. skillbox.ru
# Большие числа могут создавать новые объекты x = 1000 y = 1000 print(f"x is y: {x
is
y}") # Обычно False
Вот это интересно: когда могут, а когда не могут?
ужас, что только не придумают в новых языках программированиях, чтобы программа работала еще медленее, чем у её предшественников!
В разделе про множественное присваивание два раза один и тот же пример.
Под конец статья сдулась, если честно. Но спасибо за быстрый обзор и напоминание. Как шпаргалка начинающим подойдет. Только надо переформатировать блоки кода - у меня они дублируются и криво печатаются.
Все примеры с кодом задублированы.
И в принципе как-то мало комментариев и выводов print - не всегда понятен результат(
Да, спасибо за быстрое напоминание, иногда нужно такое.
К слову, материал очень похож на это: https://www.youtube.com/watch?v=Bz3ir-vKqkk
Если вы позиционируете материал как пособие для новичков, то для повышения качества подачи стоит добавить инфографику и схемы (как, например, в видео по ссылке выше).
Ну и про ссылочки на источники не забывайте.
А вы пробовали искать на Ютубе например?
Вот Никита Соболев в своем "Лучшем курсе по питону" уже освещал эту тему и делал это гоооораздо глубже.
Перед тем как писать какую-то познавательную статью, стоит посмотреть: а что было сделано до меня?
Не плохо. Для человека который уже много раз задумывался разобраться в этом детальнее и выяснить для себя что при передаче в функцию мутируемо, а что неприкосаемо.
Как устроены переменные в Python: глубокое погружение в память и типы данных