Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Что такое переменные?

Что такое переменные?

Григорий Петров (Voximplant) @ Python Junior Meetup № 1

"В своем выступлении я впервые попробую объяснить переменные: не рассказывая предварительно как работает компьютер, память и компилятор; не вводя мешок дополнительных сущностей вроде «присваивание», «данные», «оператор» и непереводимое «evaluate»; не проводя аналогии с математикой".

Avatar for Moscow Python Meetup

Moscow Python Meetup

February 09, 2017
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. Что сейчас будет? Рассказывает Григорий Петров Специализация Руководство разработкой Чем

    занимается Технический евангелист Опыт Более 15 лет Время выступления 20 минут (ну или как повезет…) Вопросы В конце выступления
  2. А ведь там еще и уточнение есть! Обычно это имя,

    скрывающее за собой область памяти, куда могут помещаться данные, хранящиеся в другой области памяти.
  3. А ведь там еще и уточнение есть! Обычно это имя,

    скрывающее за собой область памяти, куда могут помещаться данные, хранящиеся в другой области памяти.
  4. Посложнее? Запросить в консоли Вывести “Ваше имя” Вывести то, что

    ввели в консоли Вывести “Привет,” Вывести то, что ввели в консоли
  5. Нет, не так print(“Ваше имя”) print(input()) # Запросит первый раз

    print(“Привет,”) print(input()) # Запросит второй раз
  6. Нужен способ называть штуки Переменные: возможность называть штуки. - Не

    сами штуки - Не их имена - Не способ связи имени и штуки
  7. Нужен способ называть штуки Переменные: возможность называть штуки. - Не

    сами штуки - Не их имена - Не способ связи имени и штуки - Возможность их называть
  8. Целое больше, чем сумма частей Завтрак это не: - Омлет

    - Тарелка - Утро Это омлет утром на тарелке, собранный с целью поесть
  9. Целое больше, чем сумма частей Переменная это не: - Имя

    - Штука - Способ, каким имя привязывается к штуке
  10. Целое больше, чем сумма частей Переменная это не: - Имя

    - Штука - Способ, каким имя привязывается к штуке - Это именование штук с целью обращения по имени
  11. Целое больше, чем сумма частей Переменная это не: - Имя

    - Штука - Способ, каким имя привязывается к штуке Это именование штук с целью обращения по имени* Очень упрощенно. Вообще их еще меняют. А еще есть const. И вообще это “name binding”
  12. Eloquent JavaScript You should imagine variables as tentacles, rather than

    boxes. They do not contain values, they grasp them ― two variables can refer to the same value
  13. Python a = 1 имя штуки штука способ задать имя*

    * Далеко не единственный способ, между прочим
  14. Python a = 1 имя штуки штука способ задать имя

    Мы считаем, что созданное - инсталляция!
  15. Python a = 1 имя штуки штука способ задать имя

    Мы считаем, что созданное - инсталляция! переменная
  16. Кстати, о математике Математика: x = 3.14 Называем одно число,

    чтобы найти его Программирование: x = 3.14 Называем штуки, чтобы обращаться по имени. И переназываем. А еще штуки живут своей жизнью
  17. О чем я не рассказал • Evaluation • Области видимости

    • Static и dynamic scope • Типизация • Замыкания
  18. О чем я не рассказал • Evaluation • Области видимости

    • Static и dynamic scope • Типизация • Замыкания • И многое другое!
  19. И помните... Since computers themselves have no notion of identifiers,

    there is no binding at the machine language level — name binding is an “abstraction” provided by programming languages.