№ 4931117861 Публикуем интересные/полезные фичи/библиотеки языка. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorpy
PlumbumPlumbum
— это библиотека, предназначенная для упрощения работы с командной строкой и вызова внешних программ.
Она упрощает автоматизацию задач, которые требуют вызова командной строки из\ кода. Это может быть запуск скриптов, утилит, вызов программ для обработки данных и т. д.
Основные возможности библиотеки:
— Удобный синтаксис для запуска команд и программ из Python кода. Позволяет вызывать команды командной строки так же просто, как обычные функции.
— Автоматическое формирование командной строки. Можно передавать аргументы и параметры в виде обычных переменных, Plumbum
сам сформирует командную строку.
— Перенаправление ввода/вывода. Поддержка стандартных операторов Unix для работы с потоками данных.
— Проверка кодов возврата и обработка ошибок.
— Локальное или удаленное выполнение. Возможность запускать команды как локально, так и по SSH на удаленных хостах.
Python пришел в телеграм!
Python — второй по популярности язык в мире. Он очень универсален: можно писать сайты, а можно искусственный интеллект. Теперь у Python есть русскоязычный канал. Это первоисточник всего, что появляется в платных курсах и остальных ресурсах. Стоит подписаться!
#вопросы_с_собеседований
Что такое модульное программирование?
Модульное программирование — это подход к структурированию программного кода, при котором функциональность разбивается на отдельные модули.
Основные преимущества модульного программирования:
— Повышение читаемости и понятности кода, так как каждый модуль отвечает за определенную функциональность.
— Возможность многократного использования модулей в разных частях программы.
— Упрощение тестирования и отладки, поскольку каждый модуль можно тестировать отдельно.
— Возможность распараллеливания разработки за счет разделения труда в команде.
— Упрощение поддержки и модернизации кода за счет его модульности.
Функция zip()
Функция zip()
принимает в качестве аргументов последовательности (списки, кортежи и т.д.) и возвращает итератор с кортежами из элементов этих последовательностей.
Итератор возвращает кортежи, содержащие i-й элемент из каждой из последовательностей. Количество элементов в итоговом итераторе равно длине самой короткой последовательности.zip
можно использовать для "сшивания" вместе данных из нескольких списков. Например, имена и фамилии из двух списков можно комбинировать в один список имя-фамилия.
Результатом zip
является итератор, который можно превратить в список или кортеж. Также на результат можно применять различные операции, такие как цикл for
.zip
используется вместе с распаковкой кортежей, чтобы присвоить элементы нескольких итераторов переменным в цикле.
#это_база
Погрузитесь в мир 🐍 Python и станьте разработчиком за рекордные 4 месяца с курсом от Merion Academy!
Все, кому интересно, получат 🚀 2 бесплатных урока, где познакомитесь с базой и сразу начнете писать свою первую программу.
🎁 Бонус – бесплатный интенсив по карьере, где HR-эксперты поделятся секретами успешного резюме и расскажут как проходить собеседования. 📚 А еще бесплатный гайд по изучению Python, который будет полезен для всех, кто хочет освоить этот язык.
🕺 У ребят одна из самых доступных цен на рынке, которая в разы ниже, чем в других онлайн-школах, а еще есть рассрочка, чтобы учиться сейчас и платить по чуть-чуть ежемесячно.
👉 Регистрируйтесь по ссылке чтобы забрать бесплатные уроки, интенсив по карьере и гайд.
Merion Academy – это экосистема доступного образования, которая включает в себя:
📍IT-базу знаний с полезными статьями.
📍merionacademy">Youtube-канал ,где простыми словами говорят о сложных вещах.
📍 IT-академию, где обучат востребованным направлениям по самым доступным ценам.
Библиотека TyperTyper
— это библиотека для создания командных интерфейсов приложений на Python.
Она позволяет легко создавать CLI приложения с поддержкой аргументов, опций, субкоманд и автоматической генерацией help
.
Основные возможности Typer
:
— Декоратор @typer.command()
для определения команд и подкоманд.
— Автоматический парсинг аргументов и опций.
— Валидация и tipped annotations для аргументов и опций.
— Автоматическая генерация help
с описаниями.
— Встроенная поддержка Click
для обратной совместимости.
Typer часто используется для создания утилит командной строки, CLI интерфейсов для python приложений, API клиентов, DevOps инструментов и других задач, где нужен простой и удобный интерфейс командной строки.
#вопросы_с_собеседований
Какие операции можно производить над отображениями?
Примером отображения в Python являются словари (dicts), с ними можно выполнять следующие основные операции:
— Получение значения по ключу: my_dict[key].
— Добавление или изменение пары ключ-значение: my_dict[key] = value.
— Удаление пары ключ-значение: del my_dict[key].
— Проверка наличия ключа: key in my_dict.
— Получение списка ключей: my_dict.keys().
— Получение списка значений: my_dict.values().
— Получение пар ключ-значение: my_dict.items().
— Очистка словаря: my_dict.clear().
— Копирование: new_dict = my_dict.copy().
— Объединение словарей: z = {**x, **y}.
Находим подстроку
Ключевое слово in
используется для проверки, содержится ли элемент в последовательности (список, кортеж, строка) или словаре.
Возвращает логическое значение True
если элемент находится в последовательности/словаре, False
если нет.
Что нужно знать про поиск подстроки в строке:
— Поиск чувствителен к регистру символов, т. е. различает заглавные и строчные буквы.
— Подстрока может состоять из одного символа.
— Поиск осуществляется слева направо по всей строке.
— Как только вхождение подстроки найдено — поиск прекращается.
— Можно искать все вхождения подстроки, обернув проверку в цикл.
#это_база
Реклама АНО ДПО "Образовательные технологии Яндекса", ИНН:7704282033, erid: LjN8KJk8E
Всем привет! На связи Яндекс Практикум.
Сейчас наша команда продуктовых исследователей проводит исследование, связанное с профессией Python-разработчик, и мы ищем представителей разных компаний — тех, кто участвует в найме Python-разработчиков уровня Junior и Middle: технических лидов, лидов команд, hr-менеджеров.
Если вы участвуете в найме, хотите помочь нам и готовы пообщаться с нами (формат: около 60 минут в зуме) — заполните анкету и мы с вами свяжемся.
В знак благодарности за участие в исследовании поделимся небольшим приятным бонусом
#вопросы_с_собеседований
К чему может быть применен декоратор?
Декораторы можно применять к:
— Обычным функциям, определенным с помощью def.
— Методам классов.
— Статическим методам и методам класса внутри классов.
— Lambda функциям.
— Методам встроенных типов в Python (например, к методам списков, словарей).
Что делать, если среда разработки отказывается использовать автодополнение во всю силу? Правильно, искать обходные пути и изобретать велосипеды.
Python в силу своей динамичности может легко создать ситуацию, когда статический анализатор не может вывести типы, и, как следствие, часть проверок отключается. В итоге это влияет на скорость работы и на количество ошибок при написании кода.
В статье Вова Туров, разработчик в Selectel, рассказывает, как решить эту проблему.
Читать статью: https://slc.tl/wx03w
@selectelcareers
Реклама ООО «Селектел» 2VtzqwZiuvP
👉 Как с помощью методов ML можно очищать данные от выбросов?
Ждем вас 6 сентября в 20:00 мск на открытом уроке «Ищем выбросы методами ML» в рамках курса «Machine Learning. Professional» от OTUS
🔹 Поговорим про задачу поиска аномалий и изучим, как с помощью методов ML можно очищать данные от выбросов
🔹 В теории разберем несколько алгоритмов и применим их на практике.
📌 Результаты урока:
Вы освоите несколько методов поиска аномалий и на практике очистите данные от аномальных значений.
👉 РЕГИСТРАЦИЯ
https://otus.pw/3coS/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576. Информация о рекламодателе на сайте www.otus.ru. erid=LdtCK1f9t
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8KCohN
🗓 Подготовительный курс по Python-разработке. 990 рублей. Старт 6 сентября.
✔️Научиться понимать код на Python — а не переписывать
✔️Написать конвертер валют — ощутить вкус реального продакшена
✔️Создать основу своего пет-проекта — всего за 14 дней
Вас ждет 70 уроков теории и практики прямо в браузере, вебинары, лайвкодинг и первая собственная программа на Python, написанная под руководством опытного наставника.
Присоединяйтесь — https://ru.hexlet.io/link/fVAxUI
Реклама. ООО "ХЕКСЛЕТ РУС". ИНН 7325174845. erid: LjN8JyNtd
Sketch
Sketch — это библиотека для статистического анализа и обработки данных. Она позволяет быстро проводить первичный анализ данных и строить прототипы моделей машинного обучения.
Основные возможности:
— Быстрый и эффективный подсчёт статистик по данным, таких как сумма, среднее, медиана, дисперсия.
— Аппроксимация распределений и плотностей вероятности.
— Вычисление квантилей, сглаживания, гистограмм.
— Тестирование статистических гипотез, оценка p-value.
— Генерация случайных чисел из разных распределений.
Sketch позволяет ускорить статистический анализ данных с помощью простого и интуитивного API и используется для:
— Первичного анализа и визуализации данных.
— Статистических тестов в научных исследованиях.
— Построения прототипов моделей машинного обучения.
— Анализа пользовательских действий и событий.
— Симуляции процессов на основе статистических моделей.
P. S. Пробуем новую систему борьбы со спамерами. Чтобы вы могли писать комментарии, админ должен принять вас в чат канала: /channel/+oYlNylfNiR01M2I6
Humanize
Humanize — это библиотека, которая предоставляет функции для более удобочитаемого форматирования данных.
Основные возможности:
— Преобразование чисел в удобочитаемые строки.
— Форматирование дат и времени в понятные фразы типа "3 дня назад".
— Преобразование идентификаторов в удобные для чтения слоги.
— Сокращение длинных строк по словам для компактного отображения.
Humanize полезен в приложениях, где нужно отображать данные в интерфейсе:
— Веб-приложения для отображения статистики.
— Информационные табло и панели мониторинга.
— Системы аналитики для визуализации данных.
— CLI-интерфейсы для вывода данных пользователю.
Использование Humanize позволяет сделать отображение данных более естественным и понятным для человека. Это улучшает user experience приложения.
PysparkPyspark
— это библиотека для работы с Apache Spark
на языке Python. Она позволяет выполнять распределенные вычисления на кластерах и обрабатывать большие объемы данных.
Основные возможности Pyspark
:
— Pyspark
автоматически распределяет данные и вычисления между узлами кластера для максимальной производительности.
— В Pyspark
есть специальные типы данных (RDD, DataFrame, Dataset), которые позволяют удобно работать с табличными и структурированными данными.
— Поддержка чтения и записи в разные хранилища данных и форматы файлов.
— Встроенные алгоритмы машинного обучения для классификации, кластеризации, регрессии.
— Интуитивно понятный API, позволяющий применять Pyspark
вместе с другими популярными библиотеками Python для анализа данных.
Таким образом, Pyspark
используется для быстрой параллельной обработки больших объемов данных с помощью кластеров, что делает его очень полезным инструментом для big data и машинного обучения.
#вопросы_с_собеседований
Что будет, если декоратор не возвращает ничего?
Если декоратор не возвращает ничего, то происходит следующее:
— Декоратор заменяет оригинальную декорируемую функцию на значение None.
— При попытке вызвать декорированную функцию произойдет ошибка AttributeError, поскольку None не является вызываемым объектом.
— Выполнение декорируемого кода на самом деле не происходит.
— Декоратор фактически "срывает" работу декорируемой функции, делая ее невызываемой.
Чтобы этого избежать, декоратор обязательно должен возвращать некоторое вызываемое значение — либо оригинальную функцию, либо другую функцию-обёртку.
Таким образом, не возвращая ничего декоратор нарушает ожидаемое поведение и "ломает" декорируемый код.
28 сентября, 19:00
Selectel Python Meetup. Три уровня погружения: процессы под капотом, архитектура кода, развитие языка
Ребята из Selectel проводят митап для Python-разработчиков, где расскажут о сборе метрик и мониторинге, проектировании микросервисной архитектуры, изменениях в Python и о том, что ждет язык в будущем.
Темы докладов:
◽️ «Мультипроцессность и сбор метрик в Python: как построить мониторинг без сюрпризов», Никита Моторный, Selectel
◽️ «Заносим микросервисы и Kubernetes в облако», Александр Шишебаров, Selectel
◽️ «Такое ли светлое будущее у Python?», Денис Аникин, Райффайзенбанк
Всех, кто будет в этот день в Санкт‑Петербурге, приглашаем в офис Selectel: https://slc.tl/9ibwq
А если не сможете присоединиться лично, подключайтесь к трансляции по предварительной регистрации: https://slc.tl/z5hd7
Реклама ООО «Селектел» 2VtzqwowUb2
Функция sortedsorted()
используется для сортировки элементов в списке, кортеже или другой последовательности.
Она возвращает новый отсортированный список или итератор, не изменяя исходную последовательность.
По умолчанию сортировка выполняется в возрастающем порядке. Для сортировки в убывающем порядке нужно указать аргумент reverse=True
.
Для сортировки по определенному ключу можно использовать ключевой аргумент key
. Он принимает функцию, которая извлекает ключ для сортировки из каждого элемента.
Для сортировки объектов можно использовать атрибуты объекта в качестве ключа сортировки.
Сортировка происходит на месте для списков, и создаётся новый отсортированный список для кортежей и других неизменяемых последовательностей.
#это_база
ClickClick
— популярная библиотека для создания интерфейса командной строки (CLI) в приложениях Python.
Основные преимущества Click
— простота использования, элегантный и понятный код, мощные возможности по созданию комплексных CLI. Работает на Python 3.6 и выше.
Возможности:
— Определение команд и групп команд с помощью декоратора @click.command()
.
— Декларативное описание аргументов и опций.
— Автоматический парсинг аргументов командной строки.
— Генерация help
сообщения.
— Поддержка bash
/zsh
автодополнения.
— Вложенные команды и группы подкоманд.
— Цветной вывод в терминал.Click
широко используется для создания консольных утилит, CLI интерфейсов для web фреймворков, DevOps инструментов, скриптов автоматизации и других задач, где требуется командная строка.
#вопросы_с_собеседований
Что такое коллизия?
Коллизия — это ситуация, когда при добавлении элементов в хеш-таблицу или словарь, разные ключи отображаются в одну и ту же ячейку памяти.
Это происходит потому, что количество возможных ключей обычно больше, чем размер выделенной хеш-таблицы, и хеш-функция отображает ключи в ограниченное количество ячеек.
При коллизии несколько разных ключей могут иметь одинаковый хеш, что приводит к их конфликту при размещении в хеш-таблице.
Чтобы решить проблему коллизий, в Python используются разные стратегии, например:
— Цепочки: списки элементов внутри ячейки таблицы.
— Открытая адресация: подбор следующей свободной ячейки.
— Перехеширование: генерация нового хеша при коллизии.
Уменьшение коллизий позволяет повысить производительность операций с хеш-таблицами и словарями.
Метод get у словарей
Метод используется для получения значения по ключу. Синтаксис: dict.get(key)
Если ключ есть в словаре, возвращается соответствующее значение, если ключа нет, вместо ошибки возвращается значение None
.
Можно задать customized значение, если ключ отсутствует: dict.get(key, customized_value)
Метод полезен, когда нет уверенности, что ключ присутствует в словаре, так как позволяет избежать ошибки при обращении к несуществующим ключам.
#это_база
collections.Mappingcollections.Mapping
— это абстрактный базовый класс, который представляет отображение ключ-значение.
Он наследуется встроенными типами словарей, такими как dict
, а также другими типами, которые реализуют схожее поведение, например OrderedDict
.
Класс Mapping
определяет интерфейс, общий для всех отображений ключ-значение, включая такие методы как keys()
, values()
, items()
и другие.
Это позволяет писать универсальный код, который будет работать с любым типом, реализующим этот интерфейс.
Например, Mapping
часто используется вместе с isinstance
или issubclass
для проверки, является ли объект словарем. Также он полезен при написании функций, которым нужно принимать на вход отображения, но без привязки к конкретному типу как dict
. Mapping
гарантирует наличие основных методов словаря у переданного объекта.
sets.isuperset()
Функция sets.isuperset()
позволяет проверить, является ли один set
подмножеством другого.
Она принимает в качестве аргумента другой set
и возвращает boolean значение — True
если первый set
содержит все элементы второго, и False
в противном случае.
Это полезно при работе с множествами для проверки включения, или при проверке покрытия тестами.
Также это используется для проверки включения при работе с данными, чтобы убедиться, что один набор данных полностью покрывает другой по каким-либо критериям.
#вопросы_с_собеседований
Что будет если ошибку не обработает блок except?
Если ошибка не будет обработана в блоке except, то программа прервется и выдаст сообщение об ошибке. Это называется необработанным исключением.
При возникновении исключения Python генерирует traceback — последовательность вызовов функций, которая привела к ошибке.
Если исключение не перехватывается блоком except, то traceback выводится пользователю и программа завершается аварийно.
Распаковка массива
Распаковка массива (iterable unpacking) — это удобный синтаксис для присваивания элементов iterable
объектов (списков, кортежей и т. д.) отдельным переменным.
Основные моменты, которые нужно знать:
— Распаковка производится с помощью звездочки *
.
— Количество переменных должно соответствовать количеству элементов в iterable
объекте, иначе возникнет ошибка.
— Можно использовать распаковку для пропуска элементов.
— Для сбора оставшихся элементов в список используется конструкция *others
.
— Распаковка работает с вложенными списками.
— Формат распаковки можно использовать и при передаче аргументов в функции.
#это_база
Комплексные числа
Комплексные числа представлены типом данных complex
.
Комплексные числа можно создавать разными способами:
— Используя конструктор complex(a, b)
, где a
— действительная часть, b
— мнимая.
— Из вещественного числа, добавив к нему мнимую часть. Например, a + bj
.
— Из строкового представления с помощью complex(string)
.
С комплексными числами можно выполнять стандартные математические операции.
Для доступа к частям комплексного числа используются атрибуты real
и imag
.
Встроенные функции abs()
, conjugate(),
polar()
позволяют получить модуль, сопряженное число и представление в тригонометрической форме.
#это_база
rembg
Rembg — это библиотека для удаления фона из изображений.
Основные возможности:
— Автоматическое удаление фона с использованием нейросетей.
— Возможность точной настройки для сложных изображений .
— Поддержка изображений разных форматов — JPG, PNG, GIF и др.
Rembg использует модели глубокого обучения, предварительно обученные на больших наборах данных. Это позволяет достичь хороших результатов по удалению фона.
Также библиотека позволяет быстро интегрировать удаление фона в любые проекты на Python, где требуется обработка изображений. Простой API и хорошее качество делают эту библиотеку полезным инструментом для разных задач.
Ещё не записали ребёнка на программирование?
Московская школа программистов — не курсы, а школа программирования с фундаментальным подходом к обучению и целым поколением выпускников, которые уже строят успешную карьеру.
🎓 Выпускники школы:
- победители олимпиад: 90+ наград
- чемпионы мира по робототехнике (WRO)
- чемпионы по кибербезопасности: золотая медаль на MOSCOW CTF SCHOOL
- уже работают в Яндекс, Сбер, Kaspersky, VK и других топовых IT-компаниях.
✔️ Для школьников 3-10 классов! Сделайте первый шаг в большое будущее — регистрируйтесь на бесплатный открытый урок.
Реклама. ЧУ ДО "МОСКОВСКАЯ ШКОЛА ПРОГРАММИСТОВ". ИНН 9715290128. erid: LjN8KEncD
Деструкторы
Деструкторы используются для освобождения ресурсов, занятых объектом, перед уничтожением самого объекта.
Деструктор определяется методом __del__()
в классе и вызывается, когда счетчик ссылок на объект достигает нуля.
Используется в основном для закрытия файлов, подключений к БД.
Применение деструкторов ограничено в связи с наличием сборщика мусора. Их стоит использовать только когда нужно правильно освободить внешние ресурсы, например файлы.
#это_база