Forwarded from 1337
Победителей будет много, а для участия нужны лишь пара кликов:
1. Подписаться на Рифмы и Панчи, 1337 и на Техно.
2. Нажать «Участвовать» под этим постом
Что по призам:
1 место - Iphone 16 Pro
2 место - PS5 Slim
3 место - Nintendo Switch 2
4-10 места - 10 000 рублей на карту
Победителей определим 21 июля в 18:00 МСК. Всем удачи!
Please open Telegram to view this post
VIEW IN TELEGRAM
#вопросы_с_собеседований
Как работает хэш-таблица?
Принцип работы:
— Элементы хэш-таблицы хранятся в виде пар ключ-значение.
— Каждому ключу сопоставляется уникальный целочисленный индекс с помощью хэш-функции.
— Этот индекс используется для прямого доступа к ячейке таблицы, в которой и хранится значение.
— Если по одному индексу хэш-функции попадает несколько ключей, используется механизм разрешения коллизий (цепочки, открытая адресация).
— Хэш-таблица динамически изменяет свой размер, чтобы оптимизировать память и время доступа.
Как работает хэш-таблица?
— Элементы хэш-таблицы хранятся в виде пар ключ-значение.
— Каждому ключу сопоставляется уникальный целочисленный индекс с помощью хэш-функции.
— Этот индекс используется для прямого доступа к ячейке таблицы, в которой и хранится значение.
— Если по одному индексу хэш-функции попадает несколько ключей, используется механизм разрешения коллизий (цепочки, открытая адресация).
— Хэш-таблица динамически изменяет свой размер, чтобы оптимизировать память и время доступа.
LangChain
LangChain — это библиотека, которая позволяет создавать цепочки обработки естественного языка (NLP).
Основные возможности:
— Создание конвейеров обработки текста.
— Подключение различных модулей NLP (токенизация, лемматизация и т. д.).
— Объединение моделей в единую цепочку.
— Удобная настройка и отладка.
Используется для:
— Построения приложений для анализа текста на Python.
— Быстрого прототипирования решений для обработки естественного языка.
— Объединения разных библиотек NLP в одном workflow.
— Упрощения процесса экспериментов с моделями обработки текста.
В этом примере создается цепочка из двух моделей OpenAI — Curie и Babbage, а текст передается поочередно в каждую модель.
LangChain — это библиотека, которая позволяет создавать цепочки обработки естественного языка (NLP).
Основные возможности:
— Создание конвейеров обработки текста.
— Подключение различных модулей NLP (токенизация, лемматизация и т. д.).
— Объединение моделей в единую цепочку.
— Удобная настройка и отладка.
Используется для:
— Построения приложений для анализа текста на Python.
— Быстрого прототипирования решений для обработки естественного языка.
— Объединения разных библиотек NLP в одном workflow.
— Упрощения процесса экспериментов с моделями обработки текста.
В этом примере создается цепочка из двух моделей OpenAI — Curie и Babbage, а текст передается поочередно в каждую модель.
#вопросы_с_собеседований
В чем смысл параметров _value, __value?
_value - одиночное подчеркивание в начале имени означает, что этот параметр не предназначен для использования outside функции. Это соглашение, а не ограничение языка.
__value - двойное подчеркивание означает, что это имя зарезервировано Python и используется для специальных целей, например init для конструктора класса. Такие параметры могут выполнять какие-то дополнительные действия.
В чем смысл параметров _value, __value?
__value - двойное подчеркивание означает, что это имя зарезервировано Python и используется для специальных целей, например init для конструктора класса. Такие параметры могут выполнять какие-то дополнительные действия.
Protocol
Класс Protocol - это способ формального определения протоколов, введенный в версии 3.8.
Этот класс дает строгий и типизированный способ определения протоколов и позволяет формально описать интерфейс.
Сейчас используется в основном в стандартной библиотеке.
На изображении предоставлен пример использования Protocol для определения простого протокола логгирования.
Класс Protocol - это способ формального определения протоколов, введенный в версии 3.8.
Этот класс дает строгий и типизированный способ определения протоколов и позволяет формально описать интерфейс.
Сейчас используется в основном в стандартной библиотеке.
На изображении предоставлен пример использования Protocol для определения простого протокола логгирования.
⁉️ Хотите узнать, как устроен рабочий процесс в ML и получить базовые навыки работы с данными?
23 июля в 20:00 МСК OTUS проводит открытый урок «ML для начинающих – первые шаги с Jupyter Notebook». Вас ждёт:
– Обзор этапов машинного обучения: от подготовки данных до первой модели.
– Настройка виртуального окружения для изоляции экспериментов.
– Знакомство с Jupyter Notebook: анализ, визуализация, код и Markdown вместе.
Этот урок — идеальная отправная точка перед стартом курса «Специализация Machine Learning». Все участники получат скидку на обучение.
➡️ Регистрация открыта: https://otus.pw/w8hX/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
23 июля в 20:00 МСК OTUS проводит открытый урок «ML для начинающих – первые шаги с Jupyter Notebook». Вас ждёт:
– Обзор этапов машинного обучения: от подготовки данных до первой модели.
– Настройка виртуального окружения для изоляции экспериментов.
– Знакомство с Jupyter Notebook: анализ, визуализация, код и Markdown вместе.
Этот урок — идеальная отправная точка перед стартом курса «Специализация Machine Learning». Все участники получат скидку на обучение.
➡️ Регистрация открыта: https://otus.pw/w8hX/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
object
object - это встроенный класс, от него наследуются сразу все новые классы, если явно не указан другой базовый класс.
У объектов класса object есть методы init, str, repr и другие. Их можно переопределять в дочерних классах.
Атрибуты класса объявляются внутри класса, но вне всех методов. Атрибуты экземпляра объявляются в init.
Чтобы использовать класс object в своем коде, достаточно создать класс, унаследованный от object.
object - это встроенный класс, от него наследуются сразу все новые классы, если явно не указан другой базовый класс.
У объектов класса object есть методы init, str, repr и другие. Их можно переопределять в дочерних классах.
Атрибуты класса объявляются внутри класса, но вне всех методов. Атрибуты экземпляра объявляются в init.
Чтобы использовать класс object в своем коде, достаточно создать класс, унаследованный от object.
🧑🏻💻Хотите стать Python-разработчиком и научиться работать с современными инструментами, которые используют ведущие компании? Docker — это ваш ключ к успеху!
Присоединяйтесь к открытому уроку «Docker и его возможности для Python-разработчика» от OTUS! Мы расскажем:
- Что такое Docker и как он помогает ускорить разработку.
- Чем контейнеры отличаются от виртуальных машин.
- Как создавать и управлять Docker-образами для Python.
- Базовые практики безопасности и оптимизации работы с Docker.
Понимание Docker — это не просто тренд, а обязательное знание для разработчиков, стремящихся работать с актуальными технологиями и эффективно разворачивать приложения. Освоив Docker, вы значительно упростите свою работу с проектами, избавитесь от проблем с окружением и ускорите деплой.
⚡️Присоединяйтесь к уроку и получите скидку на большое обучение «Python Developer. Basic». Регистрация открыта: https://otus.pw/y8Qs/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Присоединяйтесь к открытому уроку «Docker и его возможности для Python-разработчика» от OTUS! Мы расскажем:
- Что такое Docker и как он помогает ускорить разработку.
- Чем контейнеры отличаются от виртуальных машин.
- Как создавать и управлять Docker-образами для Python.
- Базовые практики безопасности и оптимизации работы с Docker.
Понимание Docker — это не просто тренд, а обязательное знание для разработчиков, стремящихся работать с актуальными технологиями и эффективно разворачивать приложения. Освоив Docker, вы значительно упростите свою работу с проектами, избавитесь от проблем с окружением и ускорите деплой.
⚡️Присоединяйтесь к уроку и получите скидку на большое обучение «Python Developer. Basic». Регистрация открыта: https://otus.pw/y8Qs/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
#вопросы_с_собеседований
Что такое сцепление исключений?
Сцепление исключений - это механизм, который позволяет сохранить исходную причину исключения при дополнительной обработке ошибки.
При возникновении исключения мы можем перехватить его блоком try/except и вызвать другое исключение из блока обработки.
При этом мы сохраняем исходное исключение как причину (cause) для нового.
Это дает следующие преимущества:
- При отлове нового исключения мы по-прежнему имеем доступ к стеку вызовов и данным исходного исключения.
- Можно добавлять дополнительную информацию в новое исключение, не теряя оригинальное.
- Иерархия исключений сохраняется - мы видим полную цепочку возникновения ошибки.
Что такое сцепление исключений?
При возникновении исключения мы можем перехватить его блоком try/except и вызвать другое исключение из блока обработки.
При этом мы сохраняем исходное исключение как причину (cause) для нового.
Это дает следующие преимущества:
- При отлове нового исключения мы по-прежнему имеем доступ к стеку вызовов и данным исходного исключения.
- Можно добавлять дополнительную информацию в новое исключение, не теряя оригинальное.
- Иерархия исключений сохраняется - мы видим полную цепочку возникновения ошибки.
Memray
Memray - это библиотека для профилирования памяти и она является важным инструментом оптимизации производительности Python программ.
Библиотека отслеживает выделение и освобождение памяти при работе программы, поддерживает отслеживание ссылок на объект, применятся для профилирования на серверах и в виртуальных окружениях.
В примере мы используем декоратор memray.profile, который будет отслеживать все выделение и освобождение памяти внутри функции my_func().
При запуске этого кода memray выведет отчёт.
Memray - это библиотека для профилирования памяти и она является важным инструментом оптимизации производительности Python программ.
Библиотека отслеживает выделение и освобождение памяти при работе программы, поддерживает отслеживание ссылок на объект, применятся для профилирования на серверах и в виртуальных окружениях.
В примере мы используем декоратор memray.profile, который будет отслеживать все выделение и освобождение памяти внутри функции my_func().
При запуске этого кода memray выведет отчёт.
Аннотация типов
Аннотации типов (type hints) позволяют указать ожидаемые типы аргументов функций и возвращаемых значений. Они были введены в Python 3.5.
Аннотации типов не проверяются во время выполнения кода. Это просто подсказки для разработчиков и инструментов статического анализа кода.
Поддерживаются встроенные типы (int, float, str, bool и т.д.), а также классы, списки, словари и кортежи с указанием типов внутри.
Для необязательных аргументов используется Optional[] (например, Optional[int]).
Для возвращения нескольких типов можно использовать Union (например, Union[int, str]).
#это_база
Аннотации типов (type hints) позволяют указать ожидаемые типы аргументов функций и возвращаемых значений. Они были введены в Python 3.5.
Аннотации типов не проверяются во время выполнения кода. Это просто подсказки для разработчиков и инструментов статического анализа кода.
Поддерживаются встроенные типы (int, float, str, bool и т.д.), а также классы, списки, словари и кортежи с указанием типов внутри.
Для необязательных аргументов используется Optional[] (например, Optional[int]).
Для возвращения нескольких типов можно использовать Union (например, Union[int, str]).
#это_база
Как прокачаться до Python Middle+/Senior разработчика и получить новую работу в 2025?
Ребята из Interview Hustlers в четверг проводят воркшоп о том, как junior и middle-разработчикам быстрее вырасти до уровня крепкого Senior, овладеть hard skills, востребованными в продуктовых компаниях и BigTech, и получить новую работу на сложном рынке в 2025 году, где AI уже наступает на пятки.
🗓 24 июля 19:00 по МСК
Программа:
▪️ Какие hard skills качать, чтобы устроиться на Middle+/Senior разработчика в BigTech?
▪️ Как эффективно собеседоваться на тяжелом рынке летом 2025? Как выбивать максимальные офферы в РФ и заграницей?
▪️ Как вырасти технически на текущем месте работы и получить повышение в компании?
Спикеры:
▪️Максим Аверин — Senior Python Dev, основатель школы Interview Hustlers, 8 лет опыта
▪️Сергей Соловьев — Python Tech Lead в Кипрском финтехе, 10+ лет опыта
Регистрируйся на бесплатный воркшоп по ссылке.
📎 После регистрации на воркшоп ты получишь 2 бонуса: «Как разобрать неудачное собеседование без фидбека за 3 шага с AI?» и видео-урок «System Design интервью: Как спроектировать highload-маркетплейс с 0?»
Реклама. ИП Аверин Максим Игоревич. ИНН 781437134649.
Ребята из Interview Hustlers в четверг проводят воркшоп о том, как junior и middle-разработчикам быстрее вырасти до уровня крепкого Senior, овладеть hard skills, востребованными в продуктовых компаниях и BigTech, и получить новую работу на сложном рынке в 2025 году, где AI уже наступает на пятки.
🗓 24 июля 19:00 по МСК
Программа:
▪️ Какие hard skills качать, чтобы устроиться на Middle+/Senior разработчика в BigTech?
▪️ Как эффективно собеседоваться на тяжелом рынке летом 2025? Как выбивать максимальные офферы в РФ и заграницей?
▪️ Как вырасти технически на текущем месте работы и получить повышение в компании?
Спикеры:
▪️Максим Аверин — Senior Python Dev, основатель школы Interview Hustlers, 8 лет опыта
▪️Сергей Соловьев — Python Tech Lead в Кипрском финтехе, 10+ лет опыта
Регистрируйся на бесплатный воркшоп по ссылке.
📎 После регистрации на воркшоп ты получишь 2 бонуса: «Как разобрать неудачное собеседование без фидбека за 3 шага с AI?» и видео-урок «System Design интервью: Как спроектировать highload-маркетплейс с 0?»
Реклама. ИП Аверин Максим Игоревич. ИНН 781437134649.
#вопросы_с_собеседований
Как происходит проверка множеств на равенство?
- Для равенства множества должны содержать одинаковые элементы.
- Порядок элементов значения не имеет.
- Количество вхождений элемента также не важно.
- Если элементы в множествах разные - множества не равны.
- Другие атрибуты или свойства множеств, кроме состава элементов, не проверяются.
Таким образом, множества равны, когда они имеют одинаковые элементы, вне зависимости от порядка или количества вхождений.
Как происходит проверка множеств на равенство?
- Порядок элементов значения не имеет.
- Количество вхождений элемента также не важно.
- Если элементы в множествах разные - множества не равны.
- Другие атрибуты или свойства множеств, кроме состава элементов, не проверяются.
Таким образом, множества равны, когда они имеют одинаковые элементы, вне зависимости от порядка или количества вхождений.
Удаление префиксов и суффиксов
Методы .removeprefix() и .removesuffix() служат для удаления префикса или суффикса из строки соответственно. Эти методы были добавлены в Python 3.9.
Методы возвращают новую строку без указанного префикса или суффикса. Исходная строка не изменяется.
Если строка не начинается/заканчивается на указанный префикс/суффикс, возвращается копия исходной строки.
Методы вызывают исключение ValueError, если префикс/суффикс пустой.
#это_база
Методы .removeprefix() и .removesuffix() служат для удаления префикса или суффикса из строки соответственно. Эти методы были добавлены в Python 3.9.
Методы возвращают новую строку без указанного префикса или суффикса. Исходная строка не изменяется.
Если строка не начинается/заканчивается на указанный префикс/суффикс, возвращается копия исходной строки.
Методы вызывают исключение ValueError, если префикс/суффикс пустой.
#это_база
#вопросы_с_собеседований
Какие различия есть между методами для списков append() и extend()?
Методы append() и extend() для списков имеют разное назначение:
- append() добавляет один элемент в конец списка, принимая в качестве аргумента этот элемент.
my_list.append(10) - добавит число 10 в конец списка my_list.
- extend() расширяет список добавляя в него несколько элементов сразу. В качестве аргумента принимается итерируемый объект (список, кортеж и т.п.).
my_list.extend([10, 20, 30]) - добавит числа 10, 20, 30 в конец списка my_list.
Какие различия есть между методами для списков append() и extend()?
- append() добавляет один элемент в конец списка, принимая в качестве аргумента этот элемент.
my_list.append(10) - добавит число 10 в конец списка my_list.
- extend() расширяет список добавляя в него несколько элементов сразу. В качестве аргумента принимается итерируемый объект (список, кортеж и т.п.).
my_list.extend([10, 20, 30]) - добавит числа 10, 20, 30 в конец списка my_list.
Pygal
Pygal - это библиотека для визуализации данных с помощью SVG.
Она позволяет строить разнообразные интерактивные графики, такие как линейные, столбчатые, круговые диаграммы.
Этот код создает объект диаграммы line_chart, добавляет в нее несколько рядов данных, задает заголовок, подписи по оси X и сохраняет результат в файл SVG.
В итоге получается интерактивный график изменения доли браузеров за определенный период.
Pygal - это библиотека для визуализации данных с помощью SVG.
Она позволяет строить разнообразные интерактивные графики, такие как линейные, столбчатые, круговые диаграммы.
Этот код создает объект диаграммы line_chart, добавляет в нее несколько рядов данных, задает заголовок, подписи по оси X и сохраняет результат в файл SVG.
В итоге получается интерактивный график изменения доли браузеров за определенный период.
This media is not supported in your browser
VIEW IN TELEGRAM
Технологии, железо и роботы на Yandex Robotics Day уже 16 августа!
На складах Маркета, Леманы Про, Перекрестка, Лавки и других компаний работают роботы Яндекса, которые помогают быстро сканировать товары, собирать посылки и перемещать заказы. Чтобы все функционировало быстро и точно, специалисты Яндекс Роботикс постоянно улучшают их.
16 августа в Москве пройдет митап, на котором они расскажут, как именно это делают:
— Серёжа Стариков выступит с докладом про коммуникационную платформу Yandex Robotics и ее применение в Yandex RMS
— Дима Мовчан объяснит, как команда создает умную роборуку с помощью imitation learning и RL
— Максим Пшибло расскажет, как с помощью Yandex Robotics Management System управлять несколькими роботами и какие алгоритмы необходимы этой системе
Кроме докладов в программе презентация нового робота, выставка тех, которые уже вовсю работают на складах, нетворкинг и неформальное афтепати с экспертами Яндекс Роботикс.
Регистрируйтесь и зовите коллег!
Мероприятие бесплатное. Количество мест в офлайне ограничено — пожалуйста, дождитесь нашего подтверждения в почте.
Реклама. ООО «Яндекс.Маркет» ИНН 9704254424
На складах Маркета, Леманы Про, Перекрестка, Лавки и других компаний работают роботы Яндекса, которые помогают быстро сканировать товары, собирать посылки и перемещать заказы. Чтобы все функционировало быстро и точно, специалисты Яндекс Роботикс постоянно улучшают их.
16 августа в Москве пройдет митап, на котором они расскажут, как именно это делают:
— Серёжа Стариков выступит с докладом про коммуникационную платформу Yandex Robotics и ее применение в Yandex RMS
— Дима Мовчан объяснит, как команда создает умную роборуку с помощью imitation learning и RL
— Максим Пшибло расскажет, как с помощью Yandex Robotics Management System управлять несколькими роботами и какие алгоритмы необходимы этой системе
Кроме докладов в программе презентация нового робота, выставка тех, которые уже вовсю работают на складах, нетворкинг и неформальное афтепати с экспертами Яндекс Роботикс.
Регистрируйтесь и зовите коллег!
Мероприятие бесплатное. Количество мест в офлайне ограничено — пожалуйста, дождитесь нашего подтверждения в почте.
Реклама. ООО «Яндекс.Маркет» ИНН 9704254424
__repr__
В Python
При вызове функции
Использование метода
В данном примере класс
В Python
__repr__
является магическим методом, который определяет строковое представление объекта, которое используется для представления объекта при вызове функции repr()
или при выводе объекта на консоль.При вызове функции
print()
или print(repr())
будет вызван метод __repr__
для объекта и его строковое представление будет выведено на консоль.Использование метода
__repr__
особенно полезно при отладке, так как позволяет получить информацию о состоянии объекта и его атрибутах.В данном примере класс
Book
имеет атрибуты title
, author
и year
, которые инициализируются при создании экземпляра класса. Метод __repr__
возвращает строку, представляющую объект Book
в виде: Book(title='<название>', author='<автор>', year=<год>).Fire
В этом примере мы определяем функцию
Теперь, если мы запустим этот скрипт из командной строки с аргументом
Это происходит потому, что
Fire
— это библиотека, которая автоматически генерирует интерфейсы командной строки (CLI) из любого объекта Python. Она может использоваться для отладки и разработки кода на Python, а также для превращения существующего кода в интерфейс командной строки.В этом примере мы определяем функцию
hello
, которая принимает один аргумент name
со значением по умолчанию "World". Затем мы вызываем функцию Fire
из библиотеки fire
, передавая ей функцию hello
в качестве аргумента. Это превращает функцию hello
в интерфейс командной строки.Теперь, если мы запустим этот скрипт из командной строки с аргументом
--name=David
, то увидим следующий вывод: Hello David!Это происходит потому, что
Fire
автоматически генерирует интерфейс командной строки для функции hello
, позволяя нам передавать аргументы через командную строку.