seniorpy | Unsorted

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

54326

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

Subscribe to a channel

Senior Python Developer

Duck typing

Duck typing — это парадигма в программировании, используемая в языках с динамической типизацией, таких как Python. Суть duck typing заключается в том, что тип объекта определяется его поведением (методами и свойствами), а не явно указанным интерфейсом или базовым классом.

В Python duck typing часто выражается фразой: «Если это выглядит как утка, плавает как утка и крякает как утка, то это, вероятно, и есть утка.»

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

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

Senior Python Developer

Модуль warnings

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

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

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

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

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

Senior Python Developer

Библиотека Manim

Библиотека Manim (Mathematical Animation Engine) предоставляет инструменты для создания анимаций математических концепций с использованием Python. Эта библиотека широко используется в образовательных целях и в сообществе, занимающемся созданием математических контентов. Manim была изначально разработана Grant'ом Sanderson'ом, создателем 3Blue1Brown, для создания анимаций для его образовательных видеороликов.

Помимо этого, существует две версии Manim: Manim Community Edition (ManimCE) и Manim GL. ManimCE является развитием и поддерживается сообществом. Manim GL, с другой стороны, предоставляет улучшенные возможности OpenGL для более высокого качества анимаций.

После установки вы можете использовать команды вроде manim your_script.py YourSceneName -p -ql, чтобы создать видео на основе вашего скрипта.

Однако, учтите, что состояние инструментов и их документации может измениться, поэтому рекомендуется посетить официальный репозиторий Manim на GitHub для получения последней информации: Manim Community Edition.

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

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

Senior Python Developer

Поверхностное копирование

Копирование объектов может быть выполнено как «поверхностное» (shallow) копирование или «глубокое» (deep) копирование. Различия между ними заключаются в том, как обрабатываются вложенные объекты.

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

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

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

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

Senior Python Developer

PsychoPy

PsychoPy — это программное обеспечение для создания экспериментов в области психологии, нейронауки и экспериментальной психиатрии с использованием языка программирования Python. Он предоставляет инструменты для создания различных видов стимулов, управления временем, сбора данных и анализа результатов.

В примере на картинке мы создаем окно, текстовый стимул, отображаем его, ждем 2 секунды и затем закрываем окно. PsychoPy предоставляет богатый набор функций для создания более сложных экспериментов, таких как представление изображений, воспроизведение звуков, сбор данных о времени реакции и многое другое.

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

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

Senior Python Developer

Создайте своего бота-голосового помощника под управлением ИИ на онлайн-курсе: «Диалоговые боты и голосовые помощники»

Записывайтесь на открытый вебинар — познакомьтесь с программой обучения и преподавателями!

Вебинар: «Телеграм-бот с искусственным интеллектом на Python»
13 апреля в 20:00 мск

На открытом уроке рассмотрим:
1. Как зарегистрировать бота через BotFather и получить Телеграм-токен;
2. Что такое LLM-API (на примере бесплатных аналогов) и как его подключить;
3. Структуру простого Python-проекта: библиотека aiogram + openai;
4. Код: обработчик сообщений, который передаёт текст в LLM и возвращает ответ пользователю;
​5. Запуск бота локально.

Записывайтесь ➡️ OTUS.RU

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

Senior Python Developer

Класс Process

Класс Process предоставляется модулем multiprocessing и используется для создания и управления процессами. Процессы являются отдельными экземплярами выполнения программы, каждый со своим собственным пространством памяти, ресурсами и потоками выполнения. Использование процессов вместо потоков может быть полезным в ситуациях, когда требуется более высокая изоляция данных, или когда нужно использовать несколько ядер процессора для параллельной обработки.

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

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

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

Senior Python Developer

Распознай, кто говорит, и выиграй 600 тысяч рублей! 💙

ИТ-компания «Криптонит» приглашает на дататон «Криптонит.Тембр»!


❗️Задача — разработать модель распознавания по голосу, устойчивую к искажениям аудиосигнала.

Тебе предстоит обучить Speaker Recognition модель, устойчивую к искажениям аудио, возникающим в реальных сценариях эксплуатации речевых интерфейсов и систем обработки звука:
🔹искажения, вносимые акустической средой;
🔹посторонние шумы;
🔹реверберация;
🔹большое расстояние до микрофона;
🔹искажения каналов связи.

Участвуй, и ты сможешь:
🟦получить шанс разделить призовой фонд в 600 000 рублей;
🟦разработать решения в области Audio/Speech ML;
🟦прокачать скиллы в Speaker Recognition и Deep Learning.

👆 Регистрируйтесь до 10 апреля включительно!

Подписывайтесь на телеграм-канал «Криптонит. Разработка, наука, шифрование» — там много всего интересного.

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

Senior Python Developer

PySimpleGUI

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

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

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

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

Senior Python Developer

Библиотека setuptools

Библиотека setuptools является инструментом для упрощения процесса создания, установки и распространения пакетов Python. Она используется в основном для упрощения установки и управления зависимостями Python-пакетов.

setuptools
предоставляет функциональность для создания файлов setup.py, которые содержат информацию о вашем пакете, его зависимостях и других метаданных. Этот файл используется инструментами для установки пакетов, такими как pip.

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

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

Senior Python Developer

Функция sample()

Функция sample() модуля random в Python возвращает случайную выборку элементов из последовательности. В первом параметре функции указываем последовательность, во втором параметре — количество элементов, которые мы хотим выбрать случайным образом.

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

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

Senior Python Developer

Fugue

Fugue — это фреймворк Python для создания рабочих процессов Google Cloud Composer. Он предоставляет набор инструментов и библиотек, которые упрощают разработку, развертывание и управление рабочими процессами в Google Cloud.

Чтобы использовать Fugue в Python, необходимо сначала установить его с помощью pip:

pip install fuga


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

Код на картинке создает задачу, которая запускает команду echo.

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

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

Senior Python Developer

Фильтр нецензурной лексики за 5 минут

Смотреть статью

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

Senior Python Developer

Виртуальная клавиатура на Python+OpenCV

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

Смотреть статью

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

Senior Python Developer

JPype

JPype — это библиотека Python, которая позволяет обращаться к Java-классам и объектам из Python. Она написана на языке Java и использует JNA (Java Native Access) для взаимодействия с Java-библиотеками.

Чтобы использовать JPype в Python, необходимо сначала установить библиотеку. Это можно сделать с помощью менеджера пакетов pip:

pip install JPype1


После установки библиотеки можно импортировать ее в Python:

import JPype1

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

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

Senior Python Developer

Как работает хэш-таблица?

Хэш-таблица в Python реализована в виде словаря (dict). Вот как это работает:

— Хэширование ключей: Когда вы добавляете пару ключ-значение в словарь, Python сначала вычисляет хэш-код ключа с помощью встроенной функции hash(). Хэш-код - это целое число, представляющее "отпечаток" ключа.

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

— Поиск значения: При поиске значения по ключу Python сначала вычисляет хэш-код ключа и затем использует его для определения соответствующей "ячейки" в хэш-таблице. Затем происходит поиск значения внутри этой "ячейки" (или цепочки).

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

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

Senior Python Developer

Функция zip()

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

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

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

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

Senior Python Developer

Композиция классов

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

Композиция обычно предпочтительна, когда отношение между двумя классами является «имеет» или «включает», а не «является». Она делает код более гибким, позволяя изменять поведение объекта, не изменяя его класс напрямую.

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

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

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

Senior Python Developer

Метод str.replace()

Метод str.replace() в Python используется для замены подстроки в строке новой подстрокой. Вот базовый синтаксис метода:

new_string = old_string.replace(old_substring, new_substring)


где:
old_string — исходная строка, в которой вы хотите выполнить замену.
old_substring — подстрока, которую вы хотите заменить.
new_substring — новая подстрока, которой вы хотите заменить старую подстроку.

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

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

Senior Python Developer

pprint

pprint (pretty-print) предоставляет функционал для красивого вывода структур данных в удобочитаемой форме. Он используется для отображения сложных объектов, таких как словари и списки, с отступами и переносами строк для лучшей читаемости.

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

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

Senior Python Developer

Green threads

Зелёные потоки (green threads) — это потоки выполнения, управление которыми вместо операционной системы производит виртуальная машина (ВМ). Green threads эмулируют многопоточную среду, не полагаясь на возможности ОС по реализации легковесных потоков. Управление ими происходит в пользовательском пространстве, а не пространстве ядра, что позволяет им работать в условиях отсутствия поддержки встроенных потоков.

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

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

Senior Python Developer

Метод issuperset()

Метод issuperset() возвращает True, если все элементы указанного набора существуют в исходном наборе, в противном случае он возвращает False.

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

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

Senior Python Developer

Генераторы коллекций

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

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

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

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

Senior Python Developer

Приглашаем вас на встречу Архитектурного клуба Яндекс 360!

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

26 марта в 17:00 Вместе с Дарьей Андреевой, руководителем бэкенд-разработки Биллинга и B2B‑платформы, мы разберём нетривиальную задачу по проектированию больших групп в организации на примере Яндекс 360.

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

Нужно только оставить почту: ссылка.

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

Senior Python Developer

Функция compress

Функция compress из itertools используется для фильтрации элементов входной последовательности на основе соответствующих элементов булевой последовательности.

Код с картинки создает новый список, включающий только элементы data, для которых соответствующее значение в selectors является True. В данном случае результат будет [1, 3, 5].

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

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

Senior Python Developer

Voluptuous

Voluptuous — это библиотека Python для проверки данных. Она позволяет создавать схемы данных, которые определяют допустимые значения для различных полей данных. Voluptuous можно использовать для проверки данных, полученных от пользователей, из API или из других источников.

Для использования Voluptuous необходимо сначала импортировать библиотеку:

import voluptuous as v


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

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

Senior Python Developer

PyBrain

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

PyBrain имеет ряд преимуществ, которые делают его привлекательным для разработчиков машинного обучения:
— Простота использования: PyBrain имеет простой и понятный синтаксис, который делает его удобным для изучения.
— Модульность: PyBrain является модульной библиотекой, что позволяет разработчикам создавать собственные алгоритмы и инструменты.
— Производительность: PyBrain написан на Python, который является высокопроизводительным языком.

PyBrain может использоваться для решения широкого спектра задач машинного обучения, включая:
— Классификация: обучение нейронной сети для классификации входных данных в один из нескольких классов.
— Регрессия: обучение нейронной сети для прогнозирования непрерывных значений.
— Обнаружение аномалий: обучение нейронной сети для обнаружения аномальных входных данных.

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

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

Senior Python Developer

🔥 Проектируйте асинхронные приложения, научитесь работать с архитектурными паттернами и применять подходы Domain Driven Design на реальных проектах в команде!

Старт 31 марта на курсе «Domain Driven Design и асинхронная архитектура»

🎓 Записывайтесь на 2 бесплатных вебинара — познакомьтесь с программой обучения и преподавателями, задавайте вопросы и обсуждайте свои кейсы!

🌀 Вебинар 1: «Саги» vs распределённые транзакции: как моделировать рабочие потоки в распределённой архитектуре
⏰ 4 марта в 20:00 мск.

Программа вебинара:

1. Почему классические распределённые транзакции (2PC) плохо масштабируются и ограничивают развитие систем.
2. Что такое Saga-паттерн, какие виды саг существуют.
3. Как выбирать между сагами и транзакциями в зависимости от домена и бизнес-требований.
4. Как связывать бизнес-процессы, bounded contexts и асинхронные взаимодействия в терминах DDD.

🌀 Вебинар 2: API Gateway и не только: шаги к идеальной архитектуре внешних API
⏰ 18 марта в 20:00 мск.

Программа вебинара:

1. Зачем в распределённой архитектуре нужен API Gateway и какие задачи он решает на уровне системы.
2. Ограничения и типовые проблемы подхода «единый Gateway для всего».
3. Альтернативные и дополняющие паттерны: Backend for Frontend, Anti-Corruption Layer, публичные и внутренние API.
4. Как проектировать внешние API с учётом bounded contexts и эволюции доменной модели.
5. Роль асинхронных API и событий во внешних интеграциях.

Записывайтесь ➡️ OTUS.RU

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

Senior Python Developer

Очистка элементов в последовательности

Иногда возникает необходимость в удалении ненужных объектов последовательности. Для этого используют itertools, а именно метод compress.

Первым аргументом передаётся контейнер, к примеру список. Вторым аргументом — логические значения, соответствующие элементам в контейнере.

Если логическое значение равно True или 1, то элемент остаётся в последовательности, иначе — удаляется из нее.

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

Senior Python Developer

Метод setdefault()

Метод setdefault() в Python возвращает значение по указанному ключу из словаря. Если ключ отсутствует в словаре, метод добавляет ключ в словарь со значением по умолчанию, а затем возвращает это значение.

Метод setdefault() имеет два параметра:

— Ключ, по которому необходимо получить значение.
— Значение по умолчанию, которое будет добавлено в словарь, если ключ отсутствует.

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

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

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