Когда возникает NotImplementedError?
Исключение NotImplementedError возникает в тех случаях, когда метод или функция должны быть реализованы в подклассе, но на самом деле не были реализованы. Это часто происходит, когда родительский класс объявляет метод, но не предоставляет его реализацию, оставляя эту задачу для подклассов. Если подкласс не реализует данный метод, при его вызове будет сгенерировано исключение NotImplementedError. Это может быть полезно для отладки, так как позволяет убедиться, что все необходимые методы присутствуют в подклассах. Кроме того, такое исключение может возникнуть и в других ситуациях, например, при попытке использовать неопределённый метод или функцию.
Исключение NotImplementedError возникает в тех случаях, когда метод или функция должны быть реализованы в подклассе, но на самом деле не были реализованы. Это часто происходит, когда родительский класс объявляет метод, но не предоставляет его реализацию, оставляя эту задачу для подклассов. Если подкласс не реализует данный метод, при его вызове будет сгенерировано исключение NotImplementedError. Это может быть полезно для отладки, так как позволяет убедиться, что все необходимые методы присутствуют в подклассах. Кроме того, такое исключение может возникнуть и в других ситуациях, например, при попытке использовать неопределённый метод или функцию.
С Новым годом и Годом Змеи! 🐍 Пусть этот год принесет вам успех, рост и меньше усилий для достижения больших целей. Мы в Proglib Academy пришли с хорошими новостями в начале года.
🌟 Обновления курсов!
Мы работаем над тем, чтобы ваше обучение было проще и эффективнее. Вот что мы уже улучшили:
📈 Data Science: улучшили блок «Геометрическая прогрессия и векторная алгебра» — ключевой этап курса, который идет сразу после теории множеств.
Он закладывает фундамент для работы с данными: от анализа роста и убывания величин (геометрическая прогрессия) до понимания многомерных пространств и операций с векторами. Знания которых пригодятся в машинном обучения и аналитики.
🐍 Python: обновили курс с учетом последней версии Python 3.9.5, добавив актуальные материалы и улучшив структуру. Чтобы вы могли лучше закрепить пройденный материал, мы добавили новые интересные задачи и практические примеры.
Учебный процесс стал еще удобнее и эффективнее, а вы сможете быстрее освоить современные инструменты и техники программирования
Общие обновления:
- Перезаписали демо-курсы и презентации. Чтобы вы точно одурели с этой прикормки.
- Сократили время проверки домашних заданий, ответы теперь приходят быстрее.
- Видео теперь без перекрытий, презентации стали четче, а задания логичнее.
Но главное — мы растем для вас и с вами. Ваша обратная связь помогает нам становиться лучше. Делитесь идеями, и вместе мы создадим лучший образовательный продукт для вас!
💡 С 27.01.25 цены изменятся на 10%.
Пример: Основы программирования на Python 13,990 → 15,389 ₽. Это позволяет нам делать курсы еще круче.
Давайте сделаем 2025 год годом вашего профессионального успеха! 🚀
Выбрать курс
🌟 Обновления курсов!
Мы работаем над тем, чтобы ваше обучение было проще и эффективнее. Вот что мы уже улучшили:
📈 Data Science: улучшили блок «Геометрическая прогрессия и векторная алгебра» — ключевой этап курса, который идет сразу после теории множеств.
Он закладывает фундамент для работы с данными: от анализа роста и убывания величин (геометрическая прогрессия) до понимания многомерных пространств и операций с векторами. Знания которых пригодятся в машинном обучения и аналитики.
🐍 Python: обновили курс с учетом последней версии Python 3.9.5, добавив актуальные материалы и улучшив структуру. Чтобы вы могли лучше закрепить пройденный материал, мы добавили новые интересные задачи и практические примеры.
Учебный процесс стал еще удобнее и эффективнее, а вы сможете быстрее освоить современные инструменты и техники программирования
Общие обновления:
- Перезаписали демо-курсы и презентации. Чтобы вы точно одурели с этой прикормки.
- Сократили время проверки домашних заданий, ответы теперь приходят быстрее.
- Видео теперь без перекрытий, презентации стали четче, а задания логичнее.
Но главное — мы растем для вас и с вами. Ваша обратная связь помогает нам становиться лучше. Делитесь идеями, и вместе мы создадим лучший образовательный продукт для вас!
💡 С 27.01.25 цены изменятся на 10%.
Пример: Основы программирования на Python 13,990 → 15,389 ₽. Это позволяет нам делать курсы еще круче.
Давайте сделаем 2025 год годом вашего профессионального успеха! 🚀
Выбрать курс
Как функционирует метод __new__() в Python?
Метод __new__() отвечает за создание нового экземпляра класса, выделяя необходимую память для объекта. Он вызывается раньше метода __init__(), который занимается инициализацией уже созданного экземпляра. Этот метод особенно важен при работе с неизменяемыми типами, такими как str или int, а также в ситуациях, когда требуется контролировать процесс создания объекта, например, в паттерне Singleton.
Метод __new__() отвечает за создание нового экземпляра класса, выделяя необходимую память для объекта. Он вызывается раньше метода __init__(), который занимается инициализацией уже созданного экземпляра. Этот метод особенно важен при работе с неизменяемыми типами, такими как str или int, а также в ситуациях, когда требуется контролировать процесс создания объекта, например, в паттерне Singleton.
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
Представьте, вы попали на собеседование мечты. Всё идёт гладко, но пара неудачных фраз могут свести на нет все ваши старания. Например, если вы слишком скромны или, наоборот, перегибаете с самоуверенностью, это может вызвать недоверие. Или фраза, которая должна показать вашу гибкость, внезапно делает акцент на недостатке опыта. Знакомо?
Есть проверенные подходы, которые помогут избежать таких ситуаций, выстроить грамотное общение и оставить положительное впечатление. Готовы узнать больше? 🌟
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое old-style и new-style классы и в чем их различия?
— Old-style классы наследуются напрямую от класса type, тогда как new-style классы имеют наследование от класса object.
— New-style классы предлагают дополнительные функции, такие как дескрипторы, свойства и слоты, которые недоступны в old-style классах.
— В new-style классах метод __init__ вызывается при наследовании, в отличие от old-style классов.
— New-style классы являются предпочтительными, так как они полностью поддерживают принципы объектно-ориентированного программирования. Большинство библиотек требуют именно их использование.
Рекомендуется применять new-style классы, унаследованные от object, поскольку они обладают расширенными возможностями и лучше интегрируются с другими объектами.
— Old-style классы наследуются напрямую от класса type, тогда как new-style классы имеют наследование от класса object.
— New-style классы предлагают дополнительные функции, такие как дескрипторы, свойства и слоты, которые недоступны в old-style классах.
— В new-style классах метод __init__ вызывается при наследовании, в отличие от old-style классов.
— New-style классы являются предпочтительными, так как они полностью поддерживают принципы объектно-ориентированного программирования. Большинство библиотек требуют именно их использование.
Рекомендуется применять new-style классы, унаследованные от object, поскольку они обладают расширенными возможностями и лучше интегрируются с другими объектами.
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
💡 Как получить от нейросети код, работающий в 100 раз быстрее
Интересный эксперимент провели с Claude 3.5 Sonnet: попытались улучшить простой алгоритм на Python, раз за разом прося ИИ «написать код лучше». Задача была несложная — найти разницу между максимальным и минимальным числами в массиве, сумма цифр которых равна 30.
Казалось бы, что тут можно улучшать?
👉 Подробнее в нашей статье
#CodeOptimization
Интересный эксперимент провели с Claude 3.5 Sonnet: попытались улучшить простой алгоритм на Python, раз за разом прося ИИ «написать код лучше». Задача была несложная — найти разницу между максимальным и минимальным числами в массиве, сумма цифр которых равна 30.
Казалось бы, что тут можно улучшать?
👉 Подробнее в нашей статье
#CodeOptimization
Что делает метод isalnum()?
Метод isalnum() — это строковый метод, который определяет, состоит ли строка исключительно из букв и/или цифр. Он возвращает True, если все символы в строке являются буквами или цифрами, и False в противном случае.
Метод isalnum() особенно полезен при проверке пользовательского ввода, когда необходимо удостовериться, что введенная строка содержит только буквы и цифры.
Метод isalnum() — это строковый метод, который определяет, состоит ли строка исключительно из букв и/или цифр. Он возвращает True, если все символы в строке являются буквами или цифрами, и False в противном случае.
Метод isalnum() особенно полезен при проверке пользовательского ввода, когда необходимо удостовериться, что введенная строка содержит только буквы и цифры.
Forwarded from Proglib.academy | IT-курсы
🤖 📈 Data Science в 2025 году: 7 главных трендов
Разработчики JetBrains и Python Software Foundation рассказали, как изменится Data Science в ближайшие годы.
➡️ В статье:
▪️ Почему доля Python в анализе данных снижается
▪️ Какие библиотеки набирают популярность вместо pandas
▪️ Что происходит с AutoML, MLOps и визуализацией данных
▪️ И почему Rust и Julia наступают Python на пятки
Подробный разбор, новые инструменты и прогнозы на будущее — всё это читай в нашей статье.
🔵 Тренды меняются, но основы остаются — укрепи базу с нашим курсом «Математика для Data Science»
Разработчики JetBrains и Python Software Foundation рассказали, как изменится Data Science в ближайшие годы.
▪️ Почему доля Python в анализе данных снижается
▪️ Какие библиотеки набирают популярность вместо pandas
▪️ Что происходит с AutoML, MLOps и визуализацией данных
▪️ И почему Rust и Julia наступают Python на пятки
Подробный разбор, новые инструменты и прогнозы на будущее — всё это читай в нашей статье.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое __slots__ в Python, как они функционируют и когда их стоит применять?
__slots__ — это специальный атрибут класса, который задает фиксированный набор атрибутов для его экземпляров. Это позволяет сократить использование памяти, так как вместо хранения атрибутов в стандартном словаре (__dict__) они размещаются в фиксированной структуре. __slots__ особенно полезны, когда необходимо создать большое количество объектов одного класса, и экономия памяти имеет критическое значение. Однако стоит учитывать, что использование __slots__ ограничивает возможность добавления новых атрибутов, что может снизить гибкость классов.
__slots__ — это специальный атрибут класса, который задает фиксированный набор атрибутов для его экземпляров. Это позволяет сократить использование памяти, так как вместо хранения атрибутов в стандартном словаре (__dict__) они размещаются в фиксированной структуре. __slots__ особенно полезны, когда необходимо создать большое количество объектов одного класса, и экономия памяти имеет критическое значение. Однако стоит учитывать, что использование __slots__ ограничивает возможность добавления новых атрибутов, что может снизить гибкость классов.
Что делает %s?
%s — это специальное поле форматирования, предназначенное для вставки строковых значений в другие строки и их форматирования. Оно является частью строкового форматирования, применяемого в функциях print(), str.format() и в старом стиле с использованием оператора %.
%s — это специальное поле форматирования, предназначенное для вставки строковых значений в другие строки и их форматирования. Оно является частью строкового форматирования, применяемого в функциях print(), str.format() и в старом стиле с использованием оператора %.
Сортировка вставками
Сортировка вставками, подобно сортировке выборкой, делит список на две части: отсортированную и неотсортированную. Алгоритм проходит по неотсортированному сегменту и вставляет текущий элемент в нужное место в отсортированной части.
Предполагается, что первый элемент списка уже отсортирован. Далее рассматриваем следующий элемент, обозначим его как x. Если x больше первого элемента, он остается на своем месте. Если же он меньше, мы перемещаем первый элемент на вторую позицию, а x устанавливаем на первое место.
Продолжая с остальными элементами из несортированного сегмента, мы сдвигаем более крупные элементы в отсортированной части списка, пока не встретим элемент, меньший чем x, или не дойдем до конца списка. В первом случае x помещается на правильную позицию.
Среднее время выполнения сортировки вставками составляет O(n²), где n — это количество элементов в списке.
Сортировка вставками, подобно сортировке выборкой, делит список на две части: отсортированную и неотсортированную. Алгоритм проходит по неотсортированному сегменту и вставляет текущий элемент в нужное место в отсортированной части.
Предполагается, что первый элемент списка уже отсортирован. Далее рассматриваем следующий элемент, обозначим его как x. Если x больше первого элемента, он остается на своем месте. Если же он меньше, мы перемещаем первый элемент на вторую позицию, а x устанавливаем на первое место.
Продолжая с остальными элементами из несортированного сегмента, мы сдвигаем более крупные элементы в отсортированной части списка, пока не встретим элемент, меньший чем x, или не дойдем до конца списка. В первом случае x помещается на правильную позицию.
Среднее время выполнения сортировки вставками составляет O(n²), где n — это количество элементов в списке.
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🗺️ Как стать ИИ-разработчиком в 2025 году: дорожная карта и ресурсы
В 2025 году профессия ИИ-разработчика остается одной из самых востребованных и перспективных.
👀 Как начать свой путь в этой увлекательной, но сложной области?
Мы собрали подробную дорожную карту и полезные ресурсы, которые помогут вам шаг за шагом освоить ключевые навыки и технологии.
В 2025 году профессия ИИ-разработчика остается одной из самых востребованных и перспективных.
👀 Как начать свой путь в этой увлекательной, но сложной области?
Мы собрали подробную дорожную карту и полезные ресурсы, которые помогут вам шаг за шагом освоить ключевые навыки и технологии.
Что делает функция id?
Функция id() предназначена для получения уникального идентификатора объекта. Этот идентификатор представляет собой целое число, которое является уникальным для каждого объекта в течение выполнения программы. Функция id() принимает один аргумент — объект, и возвращает его идентификатор.
Важно помнить, что идентификатор объекта может измениться в процессе выполнения программы, если объект перемещается в памяти. Поэтому id() полезна для проверки того, ссылаются ли две переменные на один и тот же объект, но не рекомендуется использовать её для других целей, таких как сравнение объектов на идентичность.
Функция id() предназначена для получения уникального идентификатора объекта. Этот идентификатор представляет собой целое число, которое является уникальным для каждого объекта в течение выполнения программы. Функция id() принимает один аргумент — объект, и возвращает его идентификатор.
Важно помнить, что идентификатор объекта может измениться в процессе выполнения программы, если объект перемещается в памяти. Поэтому id() полезна для проверки того, ссылаются ли две переменные на один и тот же объект, но не рекомендуется использовать её для других целей, таких как сравнение объектов на идентичность.
Какие отличия между модулем, пакетом и библиотекой?
Модуль — это отдельный файл на Python, который можно импортировать в скрипты или другие модули. В нем содержатся функции, классы и глобальные переменные.
Пакет — это коллекция модулей, объединенных в одной папке для обеспечения единой функциональности. Пакеты импортируются так же, как и модули. Обычно они содержат файл
Библиотека — это совокупность пакетов.
Модуль — это отдельный файл на Python, который можно импортировать в скрипты или другие модули. В нем содержатся функции, классы и глобальные переменные.
Пакет — это коллекция модулей, объединенных в одной папке для обеспечения единой функциональности. Пакеты импортируются так же, как и модули. Обычно они содержат файл
__init__.py
, который сообщает интерпретатору Python, что папка является пакетом.Библиотека — это совокупность пакетов.
📢 Ты уже пробовал пройти AI-собеседование? Если нет, вот ещё одно напоминание от нас 🤗
Сейчас на рынке много вакансий, но как найти ту самую, которая идеально подойдёт тебе по навыкам, условиям и зарплате?
✅ Просто загрузи своё резюме
✅ Пройди интервью с нейро-рекрутером от Сбера (всего 15 минут!)
✅ Получай лучшие предложения без бесконечных звонков и ожидания откликов
💡 Алгоритмы анализируют твой опыт и подбирают вакансии, которые подходят на 98% — так что ты точно не потратишь время зря.
Работа мечты может быть на расстоянии одного клика. Попробуешь? 😉
🔗 https://clc.to/GkOTTA
Сейчас на рынке много вакансий, но как найти ту самую, которая идеально подойдёт тебе по навыкам, условиям и зарплате?
✅ Просто загрузи своё резюме
✅ Пройди интервью с нейро-рекрутером от Сбера (всего 15 минут!)
✅ Получай лучшие предложения без бесконечных звонков и ожидания откликов
💡 Алгоритмы анализируют твой опыт и подбирают вакансии, которые подходят на 98% — так что ты точно не потратишь время зря.
Работа мечты может быть на расстоянии одного клика. Попробуешь? 😉
🔗 https://clc.to/GkOTTA
Что такое MQ?
MQ (Message Queue), или очередь сообщений, представляет собой паттерн асинхронного обмена сообщениями, который обеспечивает взаимодействие между распределенными компонентами приложения.
Ключевые преимущества использования MQ:
— Асинхронность: отправитель и получатель могут работать независимо друг от друга.
— Отказоустойчивость: сообщения сохраняются даже в случае сбоев.
— Масштабируемость: позволяет легко добавлять новых производителей и потребителей сообщений.
— Сглаживание пиковой нагрузки: очередь служит буфером для сообщений.
MQ активно применяется для интеграции распределенных систем и построения микросервисных архитектур. Среди популярных реализаций MQ можно выделить RabbitMQ, Kafka и ActiveMQ.
MQ (Message Queue), или очередь сообщений, представляет собой паттерн асинхронного обмена сообщениями, который обеспечивает взаимодействие между распределенными компонентами приложения.
Ключевые преимущества использования MQ:
— Асинхронность: отправитель и получатель могут работать независимо друг от друга.
— Отказоустойчивость: сообщения сохраняются даже в случае сбоев.
— Масштабируемость: позволяет легко добавлять новых производителей и потребителей сообщений.
— Сглаживание пиковой нагрузки: очередь служит буфером для сообщений.
MQ активно применяется для интеграции распределенных систем и построения микросервисных архитектур. Среди популярных реализаций MQ можно выделить RabbitMQ, Kafka и ActiveMQ.
Что такое сериализация?
Сериализация представляет собой процесс преобразования объектов в поток байтов, что позволяет их сохранять или передавать. Это дает возможность сохранить текущее состояние объекта в файл или базу данных и восстановить его в будущем.
Ключевые преимущества сериализации:
— Сохранение и восстановление объектов между сеансами программы.
— Передача объектов по сети между различными приложениями и устройствами.
— Преобразование объектов в платформенно-независимый формат для хранения.
Сериализация представляет собой процесс преобразования объектов в поток байтов, что позволяет их сохранять или передавать. Это дает возможность сохранить текущее состояние объекта в файл или базу данных и восстановить его в будущем.
Ключевые преимущества сериализации:
— Сохранение и восстановление объектов между сеансами программы.
— Передача объектов по сети между различными приложениями и устройствами.
— Преобразование объектов в платформенно-независимый формат для хранения.
Swipe right or swipe left
Что делать, если твои мэтчи в жизни не такие точные, как твой код?
Спокойно, 14 февраля мы разберём, как ML анализирует speed dating и предсказывает match.
📌 Мы возьмем реальные данные со speed dating.
📌 Обучим модель, которая скажет: match или swipe left.
📌 Разберём, какие признаки реально важны (спойлер: работа в IT — не прям гарантия успеха (наши маркетологи подтверждают 😥).
💡 Приходи, если хочешь прокачать свой Python, ML и, возможно, станешь идеальной парой, как самый стильные форсы.
👉 Записаться
14.02 в 19:00 по МСК
Что делать, если твои мэтчи в жизни не такие точные, как твой код?
Спокойно, 14 февраля мы разберём, как ML анализирует speed dating и предсказывает match.
📌 Мы возьмем реальные данные со speed dating.
📌 Обучим модель, которая скажет: match или swipe left.
📌 Разберём, какие признаки реально важны (спойлер: работа в IT — не прям гарантия успеха (наши маркетологи подтверждают 😥).
💡 Приходи, если хочешь прокачать свой Python, ML и, возможно, станешь идеальной парой, как самый стильные форсы.
👉 Записаться
14.02 в 19:00 по МСК
Forwarded from Proglib.academy | IT-курсы
🔥 Какие навыки нужны Data Scientist'у и как их освоить
Чтобы стать успешным Data Scientist и уверенно чувствовать себя на рынке труда, важно владеть широким спектром навыков.
➡️ Что внутри статьи:
▪️ Книги, курсы и статьи, чтобы прокачать каждый навык.
▪️ Бесплатные материалы для быстрого старта.
▪️ Задачи для практики.
🔗 Читать статью
🔵 А чтобы подготовиться к собесам для Data Science, забирайте наш курс «Алгоритмы и структуры данных»
Чтобы стать успешным Data Scientist и уверенно чувствовать себя на рынке труда, важно владеть широким спектром навыков.
▪️ Книги, курсы и статьи, чтобы прокачать каждый навык.
▪️ Бесплатные материалы для быстрого старта.
▪️ Задачи для практики.
Please open Telegram to view this post
VIEW IN TELEGRAM