seniorpy | Unsorted

Telegram-канал seniorpy - Senior Python Developer

54326

№ 4931117861 Публикуем интересные/полезные фичи/библиотеки языка. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorpy

Subscribe to a channel

Senior Python Developer

🔍Тестовое собеседование на Middle Python в четверг с разработчиком из Авито

9 октября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.

Как это будет:
📂 Даня, старший разработчик в Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир →
@shortcut_py_bot

Реклама.
О рекламодателе.

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Какой метод использовался до оператора in для проверки наличия ключа в словаре?

До появления оператора in в Python, чтобы проверить, содержит ли словарь определенный ключ, использовался метод словаря has_key().

Этот метод принимал в качестве аргумента проверяемый ключ и возвращал логическое значение - True, если ключ присутствовал в словаре, и False - если нет.

В Python 2.5 появился более понятный и краткий оператор in, поэтому сейчас рекомендуется использовать именно его, а has_key() считается устаревшим.

Читать полностью…

Senior Python Developer

zlib

Библиотека zlib предоставляет функции для сжатия и декомпрессии данных с использованием алгоритма deflate. Она полезна, когда нужно уменьшить размер данных для передачи или хранения.

В примере мы используем функцию crc32(), которая вычисляет контрольную сумму CRC32 для переданных байтовых данных и возвращает целочисленное значение CRC32.
Это может быть полезно для проверки целостности данных, например при передаче файлов.

CRC32 часто используется в архивациях, сетевых протоколах и хранилищах данных для обнаружения ошибок.

Читать полностью…

Senior Python Developer

Python-dateutil

Библиотека python-dateutil предоставляет расширенные возможности для работы с датами и временем.

Она может использоваться для:
- Парсинга и форматирования дат;
- Выполнения арифметических операций с датами;
- Работы с часовыми поясами;
- Вычисления разницы между датами.

В примере мы используем библиотеку для получения начала и конца недели по заданной дате.

relativedelta используется для смещения даты на нужные дни недели.
MO(-1) - для получения предыдущего понедельника.
SU - для получения следующего воскресенья.

Читать полностью…

Senior Python Developer

Программируешь на Python? Попробуй оживить робота своим алгоритмом и поборись за призовой фонд в 10 250 000 рублей на True Tech Champ 2025.

True Tech Champ 2025 — это третий всероссийский чемпионат по программированию от МТС с онлайн-этапами отбора и грандиозным шоу-финалом в Москве.

Тебя ждут два трека — выбирай:

I. Алгоритмический [призовой фонд 2 750 000 рублей].

Если классический олимпиадный формат — твоя стихия, этот трек для тебя. Блесни математическими навыками, покажи скилы в работе со структурами данных и написании алгоритмов — и окажись выше соперников в турнирной таблице.

II. Программирование роботов [призовой фонд 7 500 000 рублей].

Запрограммируй робота на скоростное прохождение лабиринта в симуляторе и пройди в финал. На финале участники встретятся офлайн и сразятся на четырех уровнях с полосой препятствий, вспышками света, лазерами и другими препятствиями.

Трек будет интересен начинающим и опытным разработчикам: С++, Go, Python, JS, Java, C# и не только.

Подробности на сайте. Регистрация открыта до 20 октября.

Читать полностью…

Senior Python Developer

Метод join

Метод join() позволяет объединить элементы последовательности (списка, кортежа и т.д.) в строку.

Основные моменты:

- Метод принадлежит строке, вызывается на разделителе.
- В качестве разделителя можно использовать любую строку.
- В результате получится строка, где между элементами последовательности вставлен разделитель.

#это_база

Читать полностью…

Senior Python Developer

encode() и decode()

Функции encode() и decode() используются для преобразования строки в байтовое представление и обратно.

encode() преобразует строку в байты для хранения или передачи. А decode() конвертирует байты обратно в строку.
Параметр кодировки (в данном случае - utf-8) должен совпадать при encode и decode.

Читать полностью…

Senior Python Developer

Вакансия - Руководитель группы разработки (Python), Tech Lead
Ссылка на вакансию

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Что такое отображение (mapping)?

Отображение (mapping)это контейнер, который хранит пары ключ-значение. Отображения позволяют связывать ключи с значениями, чтобы можно было получить значение по ключу.

Среди основных отображений: dict, set, namedtuple.

Читать полностью…

Senior Python Developer

dict.get()

Метод dict.get() принимает два аргумента - ключ и значение по умолчанию, и позволяет получить значение по ключу из словаря.

Если ключ присутствует в словаре, возвращается соответствующее значение.
Если ключа нет, возвращается значение по умолчанию, вместо ошибки KeyError.

#это_база

Читать полностью…

Senior Python Developer

Метод count()

count() - простой и удобный способ получить число вхождений элемента в последовательности за линейное время. Полезен при подсчете статистики, анализе данных и других задачах.

Метод принимает в качестве аргумента элемент, количество которого нужно посчитать и возвращает число - количество найденных вхождений элемента.

Работает для списков, кортежей, строк.

#это_база

Читать полностью…

Senior Python Developer

Fugue

Fugue — это библиотека, которая используется для создания и оркестровки workflow машинного обучения.
Она позволяет быстро создавать, тестировать и масштабировать ML приложения, автоматизируя рутинные этапы.

Основные возможности:
— Описание этапов workflow как отдельных функций.
— Автоматическое определение зависимостей между функциями.
— Планирование выполнения функций с учетом зависимостей.
— Кэширование промежуточных результатов для оптимизации.
— Распределенное выполнение на разных ядрах или машинах.

В этом примере с помощью декоратора @FugueWorkflow() отмечены функции, которые будут этапами workflow.
Fugue автоматически определит, что fit_model зависит от preprocess, а predict - от fit_model.

При вызове функций Fugue учтёт эти зависимости и выполнит их в правильном порядке, кэшируя промежуточные результаты.

Читать полностью…

Senior Python Developer

🧩 Как разворачивать LLM API без конфликтов и долгой настройки

Разработчики все чаще сталкиваются с задачей: поднять локальный API на основе open-source LLM для встроенных ассистентов, тестов и интеграции в продукты.

В immers.cloud мы упростили запуск таких решений:

💰 Посекундная тарификация: тарифы от 23 руб/час, платите только за время, когда сервер реально работает.
⚡️ Быстрый старт: нужный сервер поднимается за пару минут.
📈 Гибкость и масштабируемость: 12 моделей видеокарт на выбор
🔧 Удобство: готовые образы для ваших задач, чтобы не тратить время на настройку.

А если нужно прерваться — можно просто заморозить ВМ с помощью функции Shelve: данные сохранятся, а платить за простои не придется.⠀

🔗 Начните сейчас и получите +20 % к первому пополнению!

Читать полностью…

Senior Python Developer

DevPyConf на Cтачке
Python-разработка│ 3 октября │ Санкт-Петербург

На DevPyConf соберутся ведущие Python разработчики, чтобы обсудить тренды, архитектуру и инструменты.

Ключевые треки конференции:
— Архитектура и python
— Современный ML, AI тулинг

Выступят спикеры:
Михаил Гурбанов, TechLead в Райффайзенбанке. Тема доклада: «Архитектура сервисов в AI ландшафте»
Евгений Блинов, Разработчик в Авито. Тема доклада: «Дружим sync и async питоны»
Юрий Маркин, Старший разработчик в X5 Tech. Тема доклада: «Pythorust не серебряная пуля»
Денис Воронкин, Backend разработчик в KTS. Тема доклада: «Почему надежно кешировать данные сложно?»
Александр Кучин, Python разработчик в Литрес. Тема доклада: «Мы уменьшили длительность нашего пайплайна в несколько раз - до 17 минут»
Алексей Фиссон, Тим лид в X5 Tech. Тема доклада: «Чем вам asyncio не фреймворк, а Redis не брокер?»
Сергей Волков, Team Lead в Сбере. Тема доклада: «Метрики без боли: AI-агент вместо BI-навигации»
Денис Аникин, Тимлид/Комьюнити лид в Райффайзенбанке. Тема доклада: «Выбираем LLM gateway»
Программа и билеты на сайте

Следите за новостями в Телеграме и ВК

Реклама ООО «Стачка». ИНН 7328081691. Erid 2Vtzquo8vua

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
В чем отличие @foobar от @foobar()?

@foobar и @foobar() — это разные способы применения декораторов.

@foobar применяет декоратор без аргументов, а @foobar() применяет декоратор с аргументами.
То есть @foobar() вызывает декоратор foobar, передавая ему аргументы, а затем результат (декорированная функция) применяется к функции.

Читать полностью…

Senior Python Developer

Mypy

Mypy
это статический анализатор типов для Python. Он позволяет добавить статическую типизацию в Python и выявлять ошибки, связанные с типами, на этапе компиляции.

Для использования Mypy нужно аннотировать переменные специальным синтаксисом, в примере мы указали, что функция sum_list принимает список целых чисел и возвращает целое число.

После запуска, если типы не совпадают, Mypy выдаст ошибку, как показано в примере.

Читать полностью…

Senior Python Developer

Statistics

Библиотека statistics предназначена для вычисления различных статистических характеристик наборов данных.

Одной из полезных функций этой библиотеки является mean(), которая вычисляет среднее арифметическое значение последовательности чисел.

В примере мы вычисляем среднее значение элементов списка data.
Функция mean() принимает последовательность чисел, суммирует их и делит на количество элементов.

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Как изменить тип данных списка?

Для изменения типа данных в списке можно использовать встроенные функции:

1. map() - применяет указанную функцию к каждому элементу списка и возвращает новый список с измененными элементами:

old_list = [1, 2, 3]
new_list = map(str, old_list)


В новом списке все элементы будут строкового типа.

2. Использование генераторного выражения:

old_list = [1, 2, 3]
new_list = [str(x) for x in old_list]


Здесь мы преобразуем элементы в строку и помещаем в новый список.

Также можно применить конструкцию map к генераторному выражению:

new_list = list(map(str, [1, 2, 3]))

Читать полностью…

Senior Python Developer

multitasking

Библиотека multitasking  предназначена для организации параллельных вычислений с использованием кооперативных потоков.
Она позволяет легко создавать параллельные задачи и управлять ими.

Multitasking полезен, когда в приложении нужно:

- Выполнять несколько задач параллельно
- Организовать очереди задач и пулы потоков
- Избежать блокировки интерфейса при длительных операциях

Как видно из примера, задачи выполнились параллельно, в произвольном порядке.

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Что такое магические методы?

Магические методы - это специальные методы класса, которые начинаются и заканчиваются двумя символами подчеркивания.

Они вызываются автоматически интерпретатором Python при определенных действиях и используются для эмуляции встроенных в язык структур и функций.

Реализуя магические методы в своем классе, программист может определить поведение класса при различных операциях и сделать его похожим на встроенные типы.

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Как сравниваются последовательности?

При сравнении происходит поэлементное (по порядку) сравнение элементов последовательностей.

Сначала сравниваются первые элементы, если они равны - вторые и т.д.

Если при сравнении очередных элементов, элемент одной последовательности оказался больше элемента другой - то результат сравнения определен.

Если дошли до конца одной последовательности, то большей считается более длинная.

Таким образом, сравнение идет поэлементно слева направо до тех пор, пока элементы равны или пока не закончится одна из последовательностей. Это называется лексикографическим порядком сравнения.

Читать полностью…

Senior Python Developer

Рекурсия в Python

Рекурсия - это метод программирования, когда функция вызывает сама себя.
Это позволяет разбивать сложные задачи на более простые подзадачи.

Рекурсивная функция должна иметь условие выхода из рекурсии (базовый случай), иначе возникнет бесконечная рекурсия.

Нужно избегать слишком глубокой рекурсии, иначе программа завершится с ошибкой StackOverflow.

Рекурсию можно заменить циклом, но рекурсивные алгоритмы часто более элегантны и просты для понимания.

На изображении представлена рекурсивная функция для вычисления факториала числа.

#это_база

Читать полностью…

Senior Python Developer

JPype

JPype - это модуль, который позволяет взаимодействовать с кодом на Java из Python.

Основные области применения JPype:
- Доступ к библиотекам Java из Python.
- Интеграция с существующим Java кодом.
- Использование JVM из Python.

В этом примере мы импортируем класс String из Java и создаем экземпляр этого класса.
Затем вызываем метод toUpperCase() у объекта javaString. Таким образом из Python мы можем работать с объектами и вызывать методы Java.
Результат работы программы:
HELLO FROM JAVA!

Читать полностью…

Senior Python Developer

Podlodka Crew 29 сентября запускает новую конференцию — Podlodka AI Crew 🥳

Если вы ищете практические знания без воды — это оно. Подлодка собрала экспертов, которые покажут, что реально работает в коде, пайплайнах и командных процессах.

В программе:

📊«AI, ML, DS, нейросети: без хайпа в терминах» — разберём границы применимости подходов, чтобы отличать пользу от шума (Алексей Шаграев, ex-Google, ex-Yandex).

👥 Круглый стол «AI-культура в команде» — инструменты и практики, сопротивление/принятие, влияние на эффективность и безопасность (Макс Сальников / Microsoft, Владимир Иванов / Supplied, Михаил Левченко / Яндекс Вертикали, Павел Герасимов / Wrike).

💻 Мастер-класс «Project-aware ассистенты:
RAG + MCP» — живая документация, контекст кода для LLM и интерфейс запросов в мессенджере; как это ускоряет онбординг и разработку (Григорий Сухоруков, Яндекс).

«Эффективный промптинг» — техники, которые убирают типовые страхи и реально ускоряют разработку (Евгений Сатуров, Surf).

Почему это важно: AI уже часть рабочего стека — от IDE до CI/CD. Здесь — практики с измеримым эффектом: меньше рутины, быстрее процессы.

Кому будет полезно: разработчикам, архитекторам и техлидам, платформенным/DevOps-инженерам - всем, кто внедряет AI-процессы и ждёт измеримого результата.

🗓
29 сентября - 3 октября
🔗 Подробности и регистрация: https://podlodka.io/aicrew

Читать полностью…

Senior Python Developer

Решение RnD-задач — ваш старт в мире AI и машинного обучения

На связи Всероссийский чемпионат по искусственному интеллекту RuCode 🔵

💬 Возможность найти стажировку мечты и карьерные консультации

💬 Сертификат МФТИ о дополнительном образовании, бесплатные курсы и интенсивы по ИИ

💬 Задачи на реальных данных компаний — партнёров чемпионата

💬 Крутые призы: игровая приставка Nintendo Switch 2, умная колонка SberBoom, фирменный мерч

Всё это ждёт вас на чемпионате по ИИ от RuCode.

— 26 октября закрывается приём задач
— 13 ноября пройдёт награждение победителей в Москве


Скорее регистрируйтесь, чтобы не упустить столько возможностей!

Реклама

Читать полностью…

Senior Python Developer

⚡️ Айтишник из «VISION» скупил топовые айти-курсы и выложил гигабайты материалов к себе

Каждый найдет что-то по душе:

903 ГБ — Python
812 ГБ — Frontend
978 ГБ — C, C++
804 ГБ — Java
432 ГБ — C#, GameDev
411 ГБ — SQL & БД
309 ГБ — DevOps
998 ГБ — ИБ & Хакинг
773 ГБ — Kotlin, Swift
189 ГБ — PHP
201 ГБ — GoLang
170 ГБ — Rust
167 ГБ — QA-Тестирование
310 ГБ — 1C + Лицензии
495 ГБ — Машинное обучение
704 ГБ — Аналитика Данных
991 ГБ — Дизайн


Материалы в закрепе, постоянно пополняются👆🏻

Читать полностью…

Senior Python Developer

Завершение программы

sys.exit()
это функция, которая позволяет завершить выполнение программы и возвратить код возврата операционной системе.
Принимает один необязательный числовой аргумент — код возврата программы. По умолчанию это 0, что означает успешное завершение, а код возврата отличный от нуля сигнализирует об ошибке или нештатной ситуации.

Используется для завершения программы в случае критической ошибки, когда продолжение работы невозможно и позволяет гибко управлять кодами возврата в зависимости от ситуации.

#это_база

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Что такое Diamond problem?

Diamond problem - это проблема, возникающая при использовании множественного наследования.

Суть проблемы заключается в том, что если есть два базовых класса A и B, от которых наследуется класс C, а классы A и B в свою очередь наследуются от общего предка D, то при обращении к членам класса D из объекта класса C возникает неоднозначность - непонятно, члены из какого класса использовать - A или B.

В Python эта проблема решается с помощью механизма MRO (Method Resolution Order) - порядка разрешения методов, который однозначно определяет, какие методы какого класса должны вызываться.

Читать полностью…

Senior Python Developer

LineaPy

LineaPy
это библиотека для работы с временными рядами и анализа временных данных.

Эта библиотека позволяет быстро решать типовые задачи анализа временных рядов без необходимости "изобретать велосипед".
Она удобна для анализа временных данных в задачах прогнозирования, мониторинга, выявления сезонности, трендов и аномалий. Имеет интуитивный API и хорошую документацию.

В этом примере мы получили прогнозные значения временного ряда на 5 периодов вперед с помощью модели ARIMA из LineaPy за считанные строки кода.

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Что такое и чем отличается old-style от new-style classes?

— Old-style классы наследуются непосредственно от объекта класса type. New-style классы наследуются от объекта класса object.

— New-style классы поддерживают дополнительные возможности, например descriptors, properties, slots. В old-style классах они не работают.

— В new-style классах метод init вызывается при наследовании, в отличие от old-style классов.

— New-style классы предпочтительны, так как полностью поддерживают особенности ООП. Большинство библиотек требуют именно их.

Рекомендуется использовать new-style классы, унаследованные от object. Они обладают расширенным функционалом и лучше взаимодействуют с другими объектами.

Читать полностью…
Subscribe to a channel