ar
Feedback
Senior Python Developer

Senior Python Developer

الذهاب إلى القناة على Telegram

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

إظهار المزيد
2025 عام في الأرقامsnowflakes fon
card fon
44 575
المشتركون
لا توجد بيانات24 ساعات
-907 أيام
-55930 أيام
أرشيف المشاركات
Photo unavailableShow in Telegram
TPOT TPOT (Tree-based Pipeline Optimization Tool) — это библиотека с открытым исходным кодом для автоматизированного машинного обучения (AutoML). Она использует популярную библиотеку Scikit-Learn для преобразования данных и алгоритмов машинного обучения. Один из примеров использования TPOT — это автоматическое создание и оптимизация конвейера машинного обучения. Выше предоставлен пример кода, который демонстрирует, как использовать TPOT для этой цели: В этом примере мы импортируем класс TPOTClassifier и загружаем набор данных iris из библиотеки Scikit-Learn. С помощью функции train_test_split мы разделяем набор данных на обучающий и тестовый. Далее создается экземпляр классификатора TPOT с заданными параметрами generations, population_size и verbosity. Классификатор обучается с помощью метода fit и оценивается с помощью метода score. В конце оптимизированный конвейер экспортируется в виде скрипта Python с помощью метода export.
إظهار الكل...
#вопросы_с_собеседований Как решить проблему конфликта зависимостей? Конфликт зависимостей может возникнуть, когда два разных пакета требуют разные версии одной и той же зависимости. Эту проблему можно решить с помощью менеджера пакетов pipenv, который автоматически устанавливает версии таким образом, чтобы они не конфликтовали друг с другом. Вместо requirements.txt pipenv предоставляет файл pipenv с версиями пакетов. При этом один из недостатков pipenv состоит в том, что создание файла pipenv занимает очень много времени. Для проверки наличия конфликта зависимостей у пакета можно использовать команду pip check.
إظهار الكل...
Photo unavailableShow in Telegram
Starlette Starlette — это легковесный ASGI фреймворк/набор инструментов, который идеально подходит для создания асинхронных веб-сервисов на Python. Он готов к использованию в продакшене и предлагает следующие возможности: - легковесный, низкосложный HTTP веб-фреймворк; - поддержка WebSocket; - фоновые задачи в процессе; - события запуска и остановки; - тестовый клиент, построенный на httpx. В этом примере создается приложение Starlette с одним маршрутом, который обрабатывается функцией homepage. Эта функция возвращает JSON-ответ с сообщением “Hello, world”. Чтобы запустить это приложение, необходимо установить ASGI-сервер, например uvicorn, и выполнить следующую команду: uvicorn example:app, где example — это имя файла с кодом приложения, а app — имя переменной с экземпляром приложения Starlette.
إظهار الكل...
Photo unavailableShow in Telegram
Перегрузка операторов сравнения Перегрузка операторов сравнения позволяет определить поведение операторов сравнения (таких как ==, !=, <, >, <= и >=) для экземпляров пользовательских классов. Это может быть полезно, когда вы хотите сравнивать объекты на основе определенных атрибутов или свойств. В этом примере мы определяем класс Person с атрибутами name и age. Затем мы перегружаем операторы сравнения, чтобы они сравнивали объекты Person на основе их возраста. Например, оператор == возвращает True, если возраст двух объектов Person равен, иначе возвращает False. #это_база
إظهار الكل...
#вопросы_с_собеседований Можно ли создать словарь с упорядоченным набором ключей в Python ниже 3.7? Начиная с версии Python 3.7, порядок вставки ключей сохраняется, и вы можете создать словарь с упорядоченным набором ключей. Чтобы создать такой словарь на версиях ниже чем 3.7, вы можете использовать collections.OrderedDict. collections.OrderedDict сохраняет порядок добавления элементов, а также предоставляет два дополнительных метода: — .popitem() удаляет элемент с начала или конца OrderedDict; — .move_to_end() перемещает элемент в начало или конец OrderedDict.
إظهار الكل...
Photo unavailableShow in Telegram
Дана входная строка s, необходимо изменить порядок слов в строке на противоположный. Слово определяется как последовательность символов, не содержащих пробелов. Слова в s будут разделены как минимум одним пробелом. Вернуть строку, состоящую из слов в обратном порядке, объединенных одним пробелом. *s может содержать начальные или конечные пробелы, а также несколько пробелов между двумя словами. Возвращаемая строка должна содержать только один пробел, разделяющий слова. Чтобы решить данную задачу нам необходимо: - Удалить начальные и конечные пробелы, а также уменьшить количество пробелов между словами до одного. - Разбить строку на отдельные слова и сохранить в списке. - Поменять порядок слов в списке на обратный с помощью метода reverse(). - Объединить слова в строку, разделенную одним пробелом, и вернуть результат. #разбор_кода
إظهار الكل...
Photo unavailableShow in Telegram
Boltons.iterutils Boltons — это набор из более чем 230 утилит на чистом Python, распространяемых по лицензии BSD, которые дополняют стандартную библиотеку. А iterutils — модуль, который предоставляет множество полезных функций для работы с итераторами. В примере мы используем следующие функции: - chunked: разделяет список на чанки заданного размера. - windowed: возвращает скользящее окно заданного размера из списка. - pairwise: возвращает пары соседних элементов из списка. - split: разделяет список на две части по заданному условию. - split_at: разделяет список на две части по заданному индексу.
إظهار الكل...
Photo unavailableShow in Telegram
PySnooper PySnooperэто библиотека для отладки, которая позволяет логгировать каждую строку выполняемого кода вместе со значениями переменных. Она полезна, когда нужно понять, как работает код и где происходят изменения переменных. Для использования необходимо декорировать функцию, которую нужно отладить с помощью @pysnooper.snoop(). Вид лога можно настроить с помощью параметров: variables — какие переменные отображать, depth — максимальная вложенность структур данных, prefix — префикс для каждой строки лога. Результат использования pysnooper предоставлен на изображении.
إظهار الكل...
Photo unavailableShow in Telegram
Инкапсуляция Инкапсуляция — это принцип ограничения доступа к части реализации объекта от внешнего кода. Это позволяет предотвратить непреднамеренное изменение внутреннего состояния объекта. В Python инкапсуляция реализуется с помощью: — Префикса _ в именах атрибутов и методов класса. Это сигнализирует, что они предназначены только для внутреннего использования в классе. — Двойного префикса __ в именах атрибутов методов (например, __private_method). Такая запись делает их недоступными извне класса. Свойств (property) для контролируемого доступа к атрибутам класса. #это_база
إظهار الكل...
Photo unavailableShow in Telegram
Моржовый оператор (Walrus Operator) Моржовый оператор (Walrus operator) — это оператор :=, введенный в версии 3.8. Он позволяет одновременно присвоить значение переменной и вернуть его. Синтаксис выглядит так: имя_переменной := выражение. Справа вычисляется выражение и присваивается переменной слева Переменная доступна в остальной части выражения после оператора. Это удобно при работе с выражениями со сложными вложенными операциями. Позволяет избежать повторного вычисления. #это_база
إظهار الكل...
Photo unavailableShow in Telegram
Библиотека scikit-image scikit-image — это библиотека для обработки изображений. scikit-image также удобна для применения в задачах компьютерного зрения. Библиотека содержит множество полезных инструментов для работы с изображениями, включая: — Фильтрация и преобразования изображений (размытие, поворот, масштабирование и т. д.). — Сегментация изображений и анализ регионов. — Обнаружение особых точек и линий (краев, углов, границ). — Морфологические операции. — Анализ текстур и цветов. — Восстановление изображений и удаление шумов.
إظهار الكل...
Photo unavailableShow in Telegram
Библиотека qiskit Qiskit — это библиотека для работы с квантовыми вычислениями и квантовым программированием на Python. Она позволяет реализовывать и тестировать квантовые алгоритмы на компьютере. Основные возможности Qiskit: — Создание и симуляция квантовых цепей. — Работа с квантовыми алгоритмами (Гровера, Шора, квантовое Фурье-преобразование и др.). — Оптимизация и компиляция квантовых программ. — Интеграция с реальным квантовым оборудованием (квантовыми процессорами). — Визуализация и анализ квантовых цепей.
إظهار الكل...
#вопросы_с_собеседований Что такое каррирование? Каррирование — это техника преобразования функции с несколькими аргументами в цепочку функций, каждая из которых принимает только один аргумент. Это позволяет зафиксировать некоторые аргументы функции и создать новую функцию с меньшим количеством аргументов. Каррирование часто используется в функциональном программировании для создания более гибких и переиспользуемых функций. Оно помогает избежать дублирования кода и упростить работу с функциями высшего порядка.
إظهار الكل...
#вопросы_с_собеседований Для чего нужен модуль operator? Модуль operator предоставляет функции, которые соответствуют встроенным операторам языка. Например, функции add(), sub(), mul() и другие реализуют арифметические операторы +, -, *. Основные причины использования модуля operator: — Возможность передавать функции в качестве аргументов или возвращаемых значений других функций. Например, в sorted(), min(), max() и др. — Оптимизация производительности за счет использования функций вместо выражений. Функции заранее компилируются. — Удобство использования при работе с изменяемыми операторами. Можно легко передать нужный оператор в функцию. — Дополнительные возможности, например, operator.itemgetter() и operator.attrgetter() для извлечения элементов из объектов.
إظهار الكل...
Photo unavailableShow in Telegram
Библиотека cvxpy cvxpy — эта библиотека позволяет описывать оптимизационные задачи в высокоуровневом виде и эффективно решать их с помощью численных методов. Основные возможности cvxpy: — Удобный синтаксис для задания целевой функции и ограничений в виде выражений Python. — Поддержка разных типов переменных: вещественных, целочисленных, булевых. — Возможность задания неравенств и равенств как ограничений. — Встроенные функции для задания норм, статистических величин и других полезных выражений. — Автоматический выбор подходящего численного решателя на основе задачи. — Интеграция с NumPy, SciPy и другими популярными библиотеками. cvxyp часто используется для решения задач оптимизации в машинном обучении, обработке сигналов, финансовом моделировании и других областях.
إظهار الكل...
Photo unavailableShow in Telegram
Pystan Pystan — это python-обёртка для Stan, которая позволяет использовать методы байесовского статистического вывода. Основные возможности Pystan: — Простой интерфейс для задания байесовских моделей на языке Stan. — Автоматическая компиляция моделей в высокооптимизированный код на C++. — Выполнение статистического вывода с использованием методов Монте-Карло (MCMC). — Возможность задавать сложные иерархические модели. — Удобные инструменты для анализа результатов моделирования. — Интеграция со многими библиотеками данных и визуализации в Python. Pystan используется везде, где нужно решать задачи статистического моделирования и анализа данных с помощью байесовских методов.
إظهار الكل...
#вопросы_с_собеседований Что такое интроспекция (intorspection)? Интроспекция — это способность языка программирования получать информацию о своих объектах и данных во время выполнения программы. Интроспекция позволяет программистам писать код, который может проверять типы объектов, атрибуты и методы во время выполнения без необходимости знать все заранее. Это очень полезно при работе с большими и сложными программами, где типы данных могут меняться динамически. Некоторые примеры использования интроспекции в Python: — Проверка типа объекта с помощью функций type() или isinstance() — Получение списка атрибутов и методов объекта с помощью dir() — Использование hasattr() или getattr() для проверки наличия атрибута или метода у объекта — Использование callable() для проверки, является ли объект функцией
إظهار الكل...
#вопросы_с_собеседований Что такое async? Async — это синтаксис для создания асинхронного кода на основе корутин. Асинхронное программирование позволяет выполнять операции вне основного потока выполнения программы. С помощью async def определяются асинхронные функции-корутины. Такие функции не выполняются сразу, а возвращают объект-корутину. Для запуска корутин используется await. Это передает управление обратно в событийный цикл до завершения корутины. Asyncio — стандартный модуль для работы с асинхронным кодом. Он содержит событийный цикл и различные классы. Асинхронный код усложняет логику программы, но позволяет добиться большей производительности за счет неблокирующих вызовов. *Корутины полезны для операций ввода/вывода, ожидания сети, обращения к БД — там, где нужно не блокировать основной поток.
إظهار الكل...
#вопросы_с_собеседований Что такое await? Await используется для работы с асинхронным кодом и корутинами. Его можно применять только внутри асинхронной функции, определенной с async def. Await позволяет избежать блокировки основного потока программы во время ожидания результатов asynс-функций. Await делает возможным использование асинхронного кода в синхронном стиле последовательно. При вызове await передается управление обратно событийному циклу. Выполнение функции приостанавливается до завершения await-выражения. Чаще всего await используется при вызове асинхронных функций и методов — для ожидания результата. Await также может применяться к объектам asyncio.Future и asyncio.Task для ожидания их завершения. Если await вызывается для корутины, то выполнение текущей корутины приостанавливается до завершения той, которая вызвана.
إظهار الكل...
Photo unavailableShow in Telegram
super() super() — это встроенная функция, которая используется для вызова родительского класса. Она позволяет вызывать методы родительского класса из дочернего класса. Это полезно при наследовании, чтобы использовать функционал базового класса. Вызов super() ищет следующий класс в цепочке наследования и вызывает этот метод. Функция принимает аргументы self и cls для связывания с текущим объектом и классом. Она часто используется в методах init дочерних классов, чтобы вызвать init родителя и инициализировать его. Использование super() позволяет избежать неявного упоминания имени базового класса в коде. #это_база
إظهار الكل...