Что выведет код с картинки?
В любом замыкании в Python переменные связываются по имени. Таким образом, в приведённой выше строке кода будет выведено следующее: [2, 2, 2].
Если бы вы хотели, чтобы вывод был [0, 1, 2], то выход из ситуации — создание отдельной функции или передача аргументов по их имени.
flist = []
for i in range(3):
flist.append(lambda i = i : i)
answer = [f() for f in flist]
print(answer)
В любом замыкании в Python переменные связываются по имени. Таким образом, в приведённой выше строке кода будет выведено следующее: [2, 2, 2].
Если бы вы хотели, чтобы вывод был [0, 1, 2], то выход из ситуации — создание отдельной функции или передача аргументов по их имени.
flist = []
for i in range(3):
flist.append(lambda i = i : i)
answer = [f() for f in flist]
print(answer)
Forwarded from Библиотека питониста | Python, Django, Flask
🐍🎓 5 задач для подготовки к собеседованию по Python
В новой статье используем алгоритмы Манакера и заметающей прямой, определяем границы окна с k-элементами, вычисляем площадь участков разного цвета и находим наибольшую увеличивающуюся подпоследовательность.
🔗 Читать статью
🔗 Зеркало
В новой статье используем алгоритмы Манакера и заметающей прямой, определяем границы окна с k-элементами, вычисляем площадь участков разного цвета и находим наибольшую увеличивающуюся подпоследовательность.
🔗 Читать статью
🔗 Зеркало
Мы наконец-то запустили канал по разработке игр — теперь все самое важное и полезное из мира геймдева можно узнать в одном месте.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код?
Anonymous Quiz
4%
0, 1, 4, 0, 1, 4
11%
0, 1, 4, 0, 1, 4, 9, 16
11%
0, 1, 4, 0, 1, 4, 1, 0, 1, 4
74%
0, 1, 4, 0, 1, 4, 9, 16, 0, 1, 4
Proglib запускает канал Азбука айтишника
Подписывайтесь на наш новый канал про айти для неайтишников — для совсем новичков и тех, кто постоянно взаимодействует с айтишниками.
У нас есть рубрики:
⭐ База — в ней рассказываем про термины из IT простым языком
⭐ Проект — объясняем, из чего состоят айтишные проекты и сколько они могут стоить
⭐ Психология айтишника — тут говорим про софт-скиллы, особенности работы и взаимодействия
👉Подписывайтесь!
Подписывайтесь на наш новый канал про айти для неайтишников — для совсем новичков и тех, кто постоянно взаимодействует с айтишниками.
У нас есть рубрики:
👉Подписывайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
Как работает хэш-таблица?
Хэш-таблица в Python реализована в виде словаря (dict). Вот как это работает:
— Хэширование ключей: Когда вы добавляете пару ключ-значение в словарь, Python сначала вычисляет хэш-код ключа с помощью встроенной функции hash(). Хэш-код — это целое число, представляющее «отпечаток» ключа.
— Разрешение коллизий: Если два разных ключа имеют одинаковый хэш-код (коллизия), Python использует механизм разрешения коллизий для размещения значений в памяти. Одним из наиболее распространенных методов разрешения коллизий является метод цепочек, когда для каждого «ячейки» хэш-таблицы выделен список, в который добавляются все значения с одинаковыми хэш-кодами.
— Поиск значения: При поиске значения по ключу Python сначала вычисляет хэш-код ключа и затем использует его для определения соответствующей «ячейки» в хэш-таблице. Затем происходит поиск значения внутри этой «ячейки» (или цепочки).
Хэш-таблица в Python реализована в виде словаря (dict). Вот как это работает:
— Хэширование ключей: Когда вы добавляете пару ключ-значение в словарь, Python сначала вычисляет хэш-код ключа с помощью встроенной функции hash(). Хэш-код — это целое число, представляющее «отпечаток» ключа.
— Разрешение коллизий: Если два разных ключа имеют одинаковый хэш-код (коллизия), Python использует механизм разрешения коллизий для размещения значений в памяти. Одним из наиболее распространенных методов разрешения коллизий является метод цепочек, когда для каждого «ячейки» хэш-таблицы выделен список, в который добавляются все значения с одинаковыми хэш-кодами.
— Поиск значения: При поиске значения по ключу Python сначала вычисляет хэш-код ключа и затем использует его для определения соответствующей «ячейки» в хэш-таблице. Затем происходит поиск значения внутри этой «ячейки» (или цепочки).
Forwarded from Библиотека питониста | Python, Django, Flask
🐍🏗️ Основы архитектуры для джунов: построение масштабируемых и чистых приложений на Python
Когда речь идёт о создании масштабируемых и поддерживаемых приложений, понимание таких важных понятий, как принципы чистого кода, архитектурные паттерны и SOLID практики проектирования, имеет решающее значение. Они позволяют сохранить ясность кодовой базы и возможность её сопровождения по мере роста проектов.
О том, как реализовать эти принципы в Python, читайте в нашей новой статье.
🔗 Ссылка на статью
🔗 Зеркало
Когда речь идёт о создании масштабируемых и поддерживаемых приложений, понимание таких важных понятий, как принципы чистого кода, архитектурные паттерны и SOLID практики проектирования, имеет решающее значение. Они позволяют сохранить ясность кодовой базы и возможность её сопровождения по мере роста проектов.
О том, как реализовать эти принципы в Python, читайте в нашей новой статье.
🔗 Ссылка на статью
🔗 Зеркало
Композиция (ассоциация) классов
Композиция (ассоциация) классов — это способ связи объектов разных классов. Позволяет создавать сложные объекты из более простых.
Один класс содержит объект другого класса как атрибут, при этом внутренний объект является частью внешнего.
Внешний класс не наследует функционал внутреннего, в отличие от наследования, просто использует его.
Композиция классов позволяет создавать сложные объекты из простых классов и подходит для моделирования реальных взаимосвязей.
Композиция (ассоциация) классов — это способ связи объектов разных классов. Позволяет создавать сложные объекты из более простых.
Один класс содержит объект другого класса как атрибут, при этом внутренний объект является частью внешнего.
Внешний класс не наследует функционал внутреннего, в отличие от наследования, просто использует его.
Композиция классов позволяет создавать сложные объекты из простых классов и подходит для моделирования реальных взаимосвязей.
Forwarded from Библиотека C/C++ разработчика | cpp, boost, qt
🏅 Как стать мидлом за 3 года: 12 советов джунам
Переход от статуса джуна к мидлу — важная, и пожалуй, самая сложная веха в карьере любого разработчика. Рассказываем об эффективных приемах и дополнительных навыках, которые помогут вам сократить этот извилистый путь
👉 Статья
Переход от статуса джуна к мидлу — важная, и пожалуй, самая сложная веха в карьере любого разработчика. Рассказываем об эффективных приемах и дополнительных навыках, которые помогут вам сократить этот извилистый путь
👉 Статья
Принцип открытости/закрытости (OCP)
Принцип открытости/закрытости (OCP) — один из основополагающих принципов объектно-ориентированного программирования (ООП), сформулированный Бертраном Мейером. Он гласит: Программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения.
Иными словами, код должен быть легко расширяемым для добавления новых функций или поведения. Существующий код не должен меняться при добавлении новых функций.
Принцип открытости/закрытости (OCP) — один из основополагающих принципов объектно-ориентированного программирования (ООП), сформулированный Бертраном Мейером. Он гласит: Программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения.
Иными словами, код должен быть легко расширяемым для добавления новых функций или поведения. Существующий код не должен меняться при добавлении новых функций.
Что выведет код сверху?
Anonymous Quiz
25%
['python'] True
26%
['python'] False
33%
['PYTHON'] True
17%
['PYTHON'] False
Что такое сериализация?
Сериализация — это процесс преобразования объектов в поток байтов для сохранения или передачи.
Это позволяет сохранить состояние объекта в файл или базу данных и восстановить его позже.
Основные преимущества сериализации:
— Сохранение и восстановление объектов между сессиями программы.
— Передача объектов по сети между приложениями и машинами.
— Преобразование объектов в формат хранения, независимый от платформы.
Сериализация — это процесс преобразования объектов в поток байтов для сохранения или передачи.
Это позволяет сохранить состояние объекта в файл или базу данных и восстановить его позже.
Основные преимущества сериализации:
— Сохранение и восстановление объектов между сессиями программы.
— Передача объектов по сети между приложениями и машинами.
— Преобразование объектов в формат хранения, независимый от платформы.