Разница между is и ==
is оператор проверяет, ссылаются ли оба операнда на один и тот же объект (т.Е. он проверяет, совпадает ли идентификатор операндов или нет).
== оператор сравнивает значения обоих операндов и проверяет, совпадают ли они.
Это is для равенства ссылок и == для равенства значений.
256 является существующим объектом, но 257 им не является. При запуске python будут выделены числа от -5 до 256. Эти числа используются часто, поэтому имеет смысл просто иметь их наготове.
is оператор проверяет, ссылаются ли оба операнда на один и тот же объект (т.Е. он проверяет, совпадает ли идентификатор операндов или нет).
== оператор сравнивает значения обоих операндов и проверяет, совпадают ли они.
Это is для равенства ссылок и == для равенства значений.
256 является существующим объектом, но 257 им не является. При запуске python будут выделены числа от -5 до 256. Эти числа используются часто, поэтому имеет смысл просто иметь их наготове.
🧵 Параллельная итерация по нескольким спискам с zip()
Если тебе нужно пройтись одновременно по двум (или более) спискам — не используй индексы вручную. Вместо этого — zip()!
🎯 Итог
zip() делает код чище и избавляет от необходимости вручную управлять индексами. Итерируйся по данным параллельно красиво и питонично!
Если тебе нужно пройтись одновременно по двум (или более) спискам — не используй индексы вручную. Вместо этого — zip()!
🎯 Итог
zip() делает код чище и избавляет от необходимости вручную управлять индексами. Итерируйся по данным параллельно красиво и питонично!
Python — как первая гитара: просто, но затягивает
Пока кто-то учит программирование по роликам на YouTube, вы можете за 5 дней собрать Telegram-бота, веб-страницу и понять, ваше ли это вообще.
Python — язык, с которого начинают аналитики, дата-сайентисты, разработчики и даже автоматизаторы. Он простой, но лежит в основе десятков современных профессий. И спрос на умеющих работать с ним специалистов только растёт.
Мини-курс не грузит теорией. Это как пробная вечеринка в мире IT: сделали, почувствовали, захотели больше.
Нажмите “начать” — и пусть Python станет вашим козырем.
Пока кто-то учит программирование по роликам на YouTube, вы можете за 5 дней собрать Telegram-бота, веб-страницу и понять, ваше ли это вообще.
Python — язык, с которого начинают аналитики, дата-сайентисты, разработчики и даже автоматизаторы. Он простой, но лежит в основе десятков современных профессий. И спрос на умеющих работать с ним специалистов только растёт.
Мини-курс не грузит теорией. Это как пробная вечеринка в мире IT: сделали, почувствовали, захотели больше.
Нажмите “начать” — и пусть Python станет вашим козырем.
🧊 Immutable словари с types.MappingProxyType
Если нужно создать неизменяемый словарь, например, для конфигурации или констант, можно использовать MappingProxyType из модуля types.
🎯 Итог
MappingProxyType — отличный способ предоставить доступ к данным без риска их изменить. Подходит для защиты конфигураций и глобальных констант.
Если нужно создать неизменяемый словарь, например, для конфигурации или констант, можно использовать MappingProxyType из модуля types.
🎯 Итог
MappingProxyType — отличный способ предоставить доступ к данным без риска их изменить. Подходит для защиты конфигураций и глобальных констант.
🕵️♂️ Атрибуты по умолчанию с getattr
Иногда нужно безопасно получить значение атрибута объекта, даже если он может не существовать. Вместо проверки через hasattr, можно использовать getattr с дефолтным значением.
Безопасный доступ — особенно полезен при работе с внешними объектами, парсерами или нестабильными структурами данных.
🎯 Итог
getattr(obj, attr, default) — простой способ избежать AttributeError и задать значение по умолчанию для несуществующих атрибутов.
Иногда нужно безопасно получить значение атрибута объекта, даже если он может не существовать. Вместо проверки через hasattr, можно использовать getattr с дефолтным значением.
Безопасный доступ — особенно полезен при работе с внешними объектами, парсерами или нестабильными структурами данных.
🎯 Итог
getattr(obj, attr, default) — простой способ избежать AttributeError и задать значение по умолчанию для несуществующих атрибутов.
🔁 Один for, два результата: перебор с индексами через enumerate
Когда нужно итерироваться по списку и одновременно иметь доступ к индексам, не используйте range(len(...)) — лучше использовать enumerate().
enumerate() делает код чище, понятнее и безопаснее (избегаете IndexError, если перепутаете индексы).
🎯 Итог
Используй enumerate, когда нужен и элемент, и его индекс — это питонично и читаемо.
Когда нужно итерироваться по списку и одновременно иметь доступ к индексам, не используйте range(len(...)) — лучше использовать enumerate().
enumerate() делает код чище, понятнее и безопаснее (избегаете IndexError, если перепутаете индексы).
🎯 Итог
Используй enumerate, когда нужен и элемент, и его индекс — это питонично и читаемо.
newspaper3k - с этим вы еще не встречались
Приготовьтесь к тому, что модуль newspaper снесёт вам крышу.
Он помогает извлекать статьи и связанные мета-данные из многих разных источников. Так же можно извлечь изображения, текста и имена авторов.
В нём даже имеется встроенная NLP-функциональность.
В этом случае, если вы собирались использовать BeautifulSoup или другую библиотеку для вебскрапинга так же в следующем проекте, лучше сэкономьте своё время и силы и загрузите newspaper
Приготовьтесь к тому, что модуль newspaper снесёт вам крышу.
Он помогает извлекать статьи и связанные мета-данные из многих разных источников. Так же можно извлечь изображения, текста и имена авторов.
В нём даже имеется встроенная NLP-функциональность.
В этом случае, если вы собирались использовать BeautifulSoup или другую библиотеку для вебскрапинга так же в следующем проекте, лучше сэкономьте своё время и силы и загрузите newspaper
🧊 Заморозить словарь: types.MappingProxyType
Иногда нужно передать неизменяемый словарь, чтобы никто не мог случайно его изменить. Для этого есть
MappingProxyType из модуля types.
Сам original можно изменять, а frozen — нет.
🎯 Итог
MappingProxyType — способ создать защищённый от изменений "словарь-обёртку", полезный в API и конфигурациях.
Иногда нужно передать неизменяемый словарь, чтобы никто не мог случайно его изменить. Для этого есть
MappingProxyType из модуля types.
Сам original можно изменять, а frozen — нет.
🎯 Итог
MappingProxyType — способ создать защищённый от изменений "словарь-обёртку", полезный в API и конфигурациях.
🧑💻 За последние 10 лет число вакансий в Data Science выросло в 30 раз, а медианная зарплата находится на уровне 200 000 рублей в месяц
Многие специалисты смежных профессий задумываются о смене профиля, задаются вопросами, подходит ли им эта сфера и с чего начать.
Небольшой тест от методологов магистерской программы МФТИ «Науки о данных» поможет понять, какую специализацию выбрать и как построить карьерный переход.
Первый шаг — перейти по ссылке!
Многие специалисты смежных профессий задумываются о смене профиля, задаются вопросами, подходит ли им эта сфера и с чего начать.
Небольшой тест от методологов магистерской программы МФТИ «Науки о данных» поможет понять, какую специализацию выбрать и как построить карьерный переход.
Первый шаг — перейти по ссылке!
Data Science за 3 дня: попробуйте профессию, которая меняет жизни
Data Science — это не “просто IT”. Это ключ к профессиям будущего, которые нужны бизнесу уже сейчас. Skillfactory запустили бесплатный мини-курс, где вы за три дня:
– создадите свою нейросеть
– напишете код на Python
– поймёте, какое направление вам ближе: аналитика, машинное обучение или инженерия
Сразу после мини-курса у вас будут три проекта в портфолио, полезные гайды и чек-листы, понимание как выйти на доход от 150 тыс.руб в месяц.
Присоединяйтесь — старт в любое время, опыт не нужен.
Data Science — это не “просто IT”. Это ключ к профессиям будущего, которые нужны бизнесу уже сейчас. Skillfactory запустили бесплатный мини-курс, где вы за три дня:
– создадите свою нейросеть
– напишете код на Python
– поймёте, какое направление вам ближе: аналитика, машинное обучение или инженерия
Сразу после мини-курса у вас будут три проекта в портфолио, полезные гайды и чек-листы, понимание как выйти на доход от 150 тыс.руб в месяц.
Присоединяйтесь — старт в любое время, опыт не нужен.
🧹 Удаление всех символов, кроме цифр: re.sub()
Когда нужно оставить только цифры в строке (например, при обработке номеров телефонов, ID и т.п.), re.sub() делает это элегантно.
🎯 Итог
re.sub(r"\D", "", text) — быстрый способ избавиться от всего, кроме цифр, в строке. Отлично работает с номерами телефонов и ID.
Когда нужно оставить только цифры в строке (например, при обработке номеров телефонов, ID и т.п.), re.sub() делает это элегантно.
🎯 Итог
re.sub(r"\D", "", text) — быстрый способ избавиться от всего, кроме цифр, в строке. Отлично работает с номерами телефонов и ID.
🧵 Параллельная обработка с concurrent.futures.ThreadPoolExecutor
Если у вас есть список задач, которые можно выполнять параллельно (например, HTTP-запросы или операции ввода-вывода), можно использовать ThreadPoolExecutor вместо обычного цикла.
🎯 Итог
ThreadPoolExecutor — простой способ параллельно обрабатывать независимые задачи, особенно эффективен для I/O-операций.
Если у вас есть список задач, которые можно выполнять параллельно (например, HTTP-запросы или операции ввода-вывода), можно использовать ThreadPoolExecutor вместо обычного цикла.
🎯 Итог
ThreadPoolExecutor — простой способ параллельно обрабатывать независимые задачи, особенно эффективен для I/O-операций.
🧠 Как элегантно "переключать" поведение с помощью словаря функций
Иногда вместо длинных цепочек if или match можно использовать словарь с функциями — это чисто, читаемо и легко расширяемо.
🎯 Итог
Словарь функций — удобный способ заменить условные конструкции, особенно когда логика разветвляется по строковым ключам (например, названиям команд или операций).
Иногда вместо длинных цепочек if или match можно использовать словарь с функциями — это чисто, читаемо и легко расширяемо.
🎯 Итог
Словарь функций — удобный способ заменить условные конструкции, особенно когда логика разветвляется по строковым ключам (например, названиям команд или операций).
Просто почитайте что пишет Саша Моловицын. Кто не знает, это топовый коммерс, который шарит за ритейл, маркетплейсы и е-ком. Его каналу много лет — это один из самых авторитетных блогов по маркетплейсам в Телеграм.
Он нескучно рассказывает про свой опыт работы, разбирает успешные и неудачные ходы марктеплейсов, стебется над клиентами. Также внутри: зачем маркетплейсы запускают свои банки, как реально работает поисковая выдача товаров и почему обязательно надо открывать ПВЗ в 2025 году.
Обычно тематические каналы однотипные и пустые, но Саша классный и бодро пишет. Подписывайтесь на него: https://t.me/+cp392ES5rWBmZWEy
Он нескучно рассказывает про свой опыт работы, разбирает успешные и неудачные ходы марктеплейсов, стебется над клиентами. Также внутри: зачем маркетплейсы запускают свои банки, как реально работает поисковая выдача товаров и почему обязательно надо открывать ПВЗ в 2025 году.
Обычно тематические каналы однотипные и пустые, но Саша классный и бодро пишет. Подписывайтесь на него: https://t.me/+cp392ES5rWBmZWEy
🧠 Как элегантно "переключать" поведение с помощью словаря функций
Иногда вместо длинных цепочек if или match можно использовать словарь с функциями — это чисто, читаемо и легко расширяемо.
🎯 Итог
Словарь функций — удобный способ заменить условные конструкции, особенно когда логика разветвляется по строковым ключам (например, названиям команд или операций).
Иногда вместо длинных цепочек if или match можно использовать словарь с функциями — это чисто, читаемо и легко расширяемо.
🎯 Итог
Словарь функций — удобный способ заменить условные конструкции, особенно когда логика разветвляется по строковым ключам (например, названиям команд или операций).