seniorpy | Unsorted

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

43333

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

Subscribe to a channel

Senior Python Developer

Что будет выведено при выполнении кода?

Пояснение
⬇️
Без передачи b функция использует b = a + 1, поэтому x = 3 * 4 = 12. С b=5 функция увеличивает b на 2, давая y = 3 * 7 = 21.

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

Senior Python Developer

IT-meetup для Python-разработчиков от команды «Группы Астра» и разработчиков RuPost

Разгоним осеннюю хандру! Говорят, что лучше всего в этом помогает непринужденная атмосфера среди единомышленников и кружка хорошего пшеничного смузи. 😎

План такой (надежный как швейцарские часы):
1) Проблемы GIL в Production и их возможные решения

Только реальные кейсы, только хард-рок! Расскажем про проблемы, с которыми столкнулись и как их решали.
Обсудим нововведения в Python 3.13, связанные с GIL.

2) Наш опыт использования JSON-RPC API
Почему именно JSON RPC? Сравним подходы и узнаем, где же REST, а также коснёмся документации.

3) Джедайские техники написания кода
Каков он путь джедая: от Юнлинга до Магистра. Испытания и приключения на всех уровнях. Главное, друг мой, не сходить с пути истинного — поделимся кодексом джедая.

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

Записываем: 15 ноября в 19:00 | Лофт «Событие», Москва, Николоямская улица дом 28

Регистрация доступна по ссылке.

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

Senior Python Developer

Глубокое копирование (deep copy)

Глубокое копирование нужно для создания полной копии объекта, включая все вложенные объекты. Это важно для изменяемых объектов, таких как списки, чтобы изменения в копии не затрагивали оригинал.

Когда мы вызываем глубокое копирование, происходит следующее:
- Создается новый контейнерный объект (список, словарь и т. д.);
- Для каждого элемента исходного объекта рекурсивно вызывается глубокое копирование:
- Если элемент является изменяемым объектом (списком, словарем), то создается его копия с рекурсивным копированием вложенных элементов;
- Если элемент неизменяемый (число, строка) - он просто копируется как есть;
- Копии вложенных объектов вставляются в копию исходного объекта.

#это_база

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

Senior Python Developer

Бесплатное IT-образование в 2024

Отобрали для вас полезные телеграм-каналы, которые помогут освоить программирование и другие IT-направления

Выбирайте нужное и подписывайтесь:

👩‍💻 Python: @PythonPortal
🖥 Базы Данных & SQL: @SQL
👩‍💻 Java: @Java_Iibrary
👩‍💻 С/С++: @Cpportal
📱 GitHub: @git_developer
🤓 Книги айти: @portalToIT
👩‍💻 Frontend: @FrontendPortal
⚙️ Backend: @BackendPortal
👩‍💻 C#: @KodBlog
👩‍💻 Golang: @juniorGolang
👩‍💻 PHP: @PHPortal
👩‍💻 Моб. разработка: @MobDev
👩‍💻 Разработка игр: @GameDevgx
👩‍💻 DevOps: @loose_code
🖥 Data Science: @DataSciencegx
🤔 Хакинг & ИБ: @cybersecinform
🐞 Тестирование: @QAPortal
📱 Маркетинг: @MarketingPortal
🖥 Дизайн: @PortalToDesign

➡️ Сохраняйте себе, чтобы не потерять

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

Senior Python Developer

Обезьяний патч

Обезьяний патч (Monkey patch) в Python — это техника, которая позволяет изменять или расширять функциональность существующих классов, модулей или объектов во время выполнения программы. Этот термин образовался из-за аналогии с идеей того, что вы «насаживаете» (patch) код поверх существующего, подобно обучению обезьяны выполнять новые трюки.

#для_продвинутых

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

Senior Python Developer

Яндекс Foodtech Tour теперь в Казани!

Эксперты Еком-сервисов Яндекс продолжают тур по городам с митапами для бэкенд-разработчиков. Ближайший пройдет в Казани уже 14 ноября. В программе три доклада: 
👉 Никита Сидоров, руководитель службы инфраструктуры пользовательской скорости в Яндекс маркете, расскажет про подходы к работе над перформансом приложения
👉 Гадель Закиров и Назар Старанцов, руководители групп в Яндекс Еде, объяснят, как можно ускорять старт приложения и загрузку главной страницы 
👉 Гоша Пономарев и Костя Захматов, разработчики в Яндекс Лавке, поделятся историей ускорения работы в дарксторах 

После докладов гостей ждет открытый микрофон со спикерами и афтепати. Зовите друзей и регистрируйтесь

Обратите внимание, количество мест ограничено. После регистрации обязательно дождитесь подтверждения заявки.

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

Senior Python Developer

⚙️ any()

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

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

Senior Python Developer

➡️ Использование библиотеки Arrow для работы с датами и временем в Python

Arrow — это библиотека для более удобной работы с датами и временем в Python. Она предоставляет простой API для создания, преобразования и форматирования объектов datetime, упрощая работу с временными зонами и временем выполнения задач.

Arrow поддерживает естественные синтаксические конструкции и форматирование дат, а также имеет встроенные функции для манипуляции временем.

🔗 Ссылочка на доку

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

Senior Python Developer

⚙️ XlsxWriter для записи файлов в формате Excel

ℹ️ XlsxWriter — это очень мощный модуль Python для записи файлов в формате Excel. Он поддерживает добавление текста, чисел, формул, изображений и макросов Excel — среди прочих функциональных возможностей.

✔️ XlsxWriter даже интегрируется с pandas, известным пакетом Python для работы с данными.

🔗 Ссылочка на доку

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

Senior Python Developer

➡️ Использование библиотеки Pyee для создания и управления событиями в Python

Pyee — это небольшая, но мощная библиотека, предоставляющая событийно-ориентированный подход в стиле Node.js для Python. Она позволяет легко создавать и управлять событиями в ваших приложениях, улучшая структуру кода и обеспечивая более гибкую обработку асинхронных операций.

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

🔗 Ссылочка на доку

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

Senior Python Developer

Стать сотрудником Яндекса быстрее и проще, чем кажется. Участвуйте в днях быстрого найма: решите тестовое, пройдите несколько секций собеседования и получите офер за несколько дней.

Ближайшее мероприятие:

• 9-11 ноября — для продуктовых и аналитиков данных, офер за 3 дня в команды Финтеха и Яндекс Практикума.

Зарегистрироваться

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

Senior Python Developer

Вопрос на собеседовании

Как работают замыкания (closures) в Python, и как их можно использовать для сохранения состояния между вызовами функции?

Ответ ⬇️
Замыкания позволяют внутренней функции запоминать переменные из объемлющей области видимости даже после завершения работы внешней функции. Это полезно для создания функций с сохраненным состоянием, например, для подсчета числа вызовов.

🗣️ Пример:

def counter():
count = 0 # Переменная в объемлющей области видимости

def increment():
nonlocal count # Обращаемся к переменной из объемлющей области
count += 1
return count

return increment

# Пример использования
counter1 = counter()
print(counter1()) # 1
print(counter1()) # 2

counter2 = counter()
print(counter2()) # 1

# Результат выполнения:
# 1
# 2
# 1

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

Senior Python Developer

➡️ Использование модуля contextvars для управления состоянием в асинхронном коде

Модуль contextvars, появившийся в Python 3.7, предоставляет механизм для хранения и управления контекстными переменными, которые сохраняют свое значение в пределах текущего потока или корутины.

🗣 Это особенно полезно в асинхронном программировании, где обычные переменные могут вести себя непредсказуемо из-за переключения контекстов.

✔️ contextvars повышает надежность и предсказуемость асинхронного кода, позволяя безопасно работать с состоянием.

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

Senior Python Developer

Yandex Cloud запустил сервис для ускорения разработки продуктов в облаке Yandex Serverless Integrations

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

Сделать это можно благодаря инструменту Yandex Workflows — он позволяет описать последовательность операций с помощью декларативного языка YAML. Сервис автоматически запустит эти процессы и проконтролирует их выполнение.

Помимо этого, Yandex Serverless Integrations включает в себя инструменты EventRouter для передачи событий между сервисами и API Gateway для создания шлюзов между внешними и облачными сервисами по спецификации OpenAPI 3.0.

Читайте подробнее в статье

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

Senior Python Developer

➡️ Использование модуля ast для анализа и модификации исходного кода Python

Модуль ast (Abstract Syntax Tree) позволяет анализировать и модифицировать исходный код Python на уровне его абстрактного синтаксического дерева (AST). Это мощный инструмент для тех, кто хочет динамически изменять код, строить анализаторы или трансформировать Python-программы на лету.

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

✔️ ast открывает множество возможностей для тех, кто занимается метапрограммированием или созданием собственных инструментов для анализа и оптимизации Python-кода.

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

Senior Python Developer

Что такое линейная сложность сортировки?

Линейная сложность сортировки обозначает алгоритм сортировки, который имеет временную сложность, пропорциональную количеству элементов в сортируемом массиве (или коллекции). В математической нотации линейная сложность обозначается как O(n), где "n" - количество элементов.

Примером линейной сортировки может быть алгоритм «сортировка подсчётом» (counting sort). В этом алгоритме создается дополнительный массив для подсчета количества вхождений каждого элемента. Затем на основе этой информации о количестве вхождений каждого элемента строится отсортированный массив.

#для_начинающих

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

Senior Python Developer

Что такое MRO?

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

MRO в Python определяется с помощью алгоритма C3 Linearization (C3 линеаризации). Этот алгоритм гарантирует, что порядок разрешения методов будет согласован и предсказуем вне зависимости от порядка наследования. Он предотвращает проблемы, связанные с амбигуитетами и неоднозначностями в множественном наследовании.

#для_продвинутых

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

Senior Python Developer

Функция id()

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

Обратите внимание, что идентификатор объекта может измениться во время выполнения программы, если объект перемещается в памяти. Поэтому id() полезно для определения, указывают ли две переменные на один и тот же объект, но не следует полагаться на него для других целей, таких как сравнение объектов на идентичность.

#для_продвинутых

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

Senior Python Developer

classmethod

classmethod — это декоратор в Python, который используется для определения методов класса, которые не принимают экземпляр класса (self) в качестве первого аргумента, а вместо этого принимают класс (cls) в качестве первого аргумента. Эти методы могут использоваться для операций, которые связаны с самим классом, а не с его экземплярами.

#для_начинающих

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

Senior Python Developer

Срезы

Срезы (slices) в Python — это способ получения подстроки (подсписка) из последовательности, такой как строка (str), список (list) или кортеж (tuple).

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

Senior Python Developer

👩‍💻 Задача по Python

Создайте функцию find_longest_substring для поиска самой длинной подстроки в строке, содержащей уникальные символы. Функция должна возвращать длину этой подстроки.

Пример:


print(find_longest_substring("abcabcbb")) # Вернёт 3, т.к. самая длинная уникальная подстрока "abc"
print(find_longest_substring("bbbbb")) # Вернёт 1, т.к. самая длинная уникальная подстрока "b"
print(find_longest_substring("pwwkew")) # Вернёт 3, т.к. самая длинная уникальная подстрока


Решение задачи на картинке

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

Senior Python Developer

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

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

Как это будет:

1. Савва Демиденко, ex. TechLead в Яндексе, Авито и другом русском бигтехе будет задавать реальные вопросы и задачи разработчику-добровольцу
2. Савва будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
3. В конце можно будет задать любой вопрос Савве

Что узнаешь на прямом эфире от ШОРТКАТ:

— Чего ждут от кандидатов на Middle позиции в Python-разработке
— Какие вопросы задают на интервью и зачем
— Как подготовиться к собесу, чтобы получить оффер

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

Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqwcirGU

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

Senior Python Developer

➡️ Разница между list.sort() и sorted() в Python

list.sort() сортирует список на месте, изменяя его, и возвращает None, тогда как sorted() создает новый отсортированный список, оставляя оригинал неизменным.

✔️ Оба метода имеют параметры key и reverse, позволяя кастомизировать сортировку.

list.sort() используется для изменения оригинального списка. • sorted() возвращает новый отсортированный список из любого итерируемого объекта.

🔗 Почитать подробнее

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

Senior Python Developer

⚡️Выйти на стабильный доход в 150+ тысяч рублей можно всего за 3 месяца обучения в IT.

Сегодня переход в сферу IT — это не просто модный тренд, а реальная возможность изменить свою жизнь.

Ребята из онлайн-академии StepByStep в своем канале проводят бесплатный интенсив, благодаря которому можно погрузиться в мир IT и освоить самую востребованную профессию 2025 года – системный аналитик.

Гарантия трудоустройства после обучения.

Переходи и бесплатно изучай для себя новое прибыльное направление: /channel/+A1rEg2B5u_dlOTMy

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

Senior Python Developer

➡️ Использование Pint для работы с единицами измерения и конвертаций

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

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

🔗 Ссылочка на доку

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

Senior Python Developer

➡️ Использование cachetools для кэширования в Python

cachetools — это небольшая, но мощная библиотека для кэширования, которая предоставляет различные стратегии кэширования, такие как LRU (Least Recently Used), LFU (Least Frequently Used) и другие. Она позволяет оптимизировать производительность, избегая повторных вычислений или запросов.

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

🔗 Ссылочка на доку

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

Senior Python Developer

➡️ Использование функции itertools.tee() для дублирования итераторов

itertools.tee() — это интересная функция из модуля itertools, позволяющая создавать несколько независимых копий одного и того же итератора.

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

✔️ itertools.tee() делает работу с итераторами гибче и удобнее.

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

Senior Python Developer

➡️ Использование библиотеки Pypika для динамического построения SQL-запросов

Pypika позволяет создавать сложные запросы программным способом, избегая ошибок ручного написания SQL-кода и защищая от SQL-инъекций. Это особенно полезно при построении динамических и параметризованных запросов в приложениях.

Pypika — отличный выбор, если вам нужно строить запросы к базе данных на лету.

🔗 Ссылочка на доку

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

Senior Python Developer

Вопрос на собеседовании

Что такое декораторы с аргументами в Python, и как их можно использовать?

Ответ ⬇️
Декораторы с аргументами — это функции, которые принимают параметры и возвращают другой декоратор. Это позволяет создавать более гибкие и настраиваемые декораторы, которые могут изменять поведение функций в зависимости от переданных им аргументов.

🗣️ Пример:

def repeat(times):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(times):
result = func(*args, **kwargs)
return result
return wrapper
return decorator

@repeat(3)
def say_hello():
print("Hello!")

say_hello()

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

Senior Python Developer

➡️ Использование библиотеки aiometer для конкурентного выполнения асинхронных задач

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

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

🔗 Ссылочка на доку

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