Задача:
Завершите метод/функцию, чтобы он преобразовывал слова, разделенные тире/подчеркиванием, в верхний регистр. Первое слово в выводе должно быть написано с заглавной буквы, только если исходное слово было написано с заглавной буквы. Следующие слова всегда должны быть с заглавной буквы.
Пример:
#задачник
@python_practics
Завершите метод/функцию, чтобы он преобразовывал слова, разделенные тире/подчеркиванием, в верхний регистр. Первое слово в выводе должно быть написано с заглавной буквы, только если исходное слово было написано с заглавной буквы. Следующие слова всегда должны быть с заглавной буквы.
Пример:
"the-stealth-warrior" # "theStealthWarrior"
"The_Stealth_Warrior" # "TheStealthWarrior"
#задачник
@python_practics
👍6
Создание веб-роботов
Этот скрипт поможет вам автоматизировать веб-сайты с помощью Python. Вы сможете создать веб-робота, который сможет управлять любым веб-сайтом. Этот скрипт очень удобен для веб-скрапинга и автоматизации веб-сайтов.
👍 - если было полезно
#полезные_сниппеты
@python_practics
Этот скрипт поможет вам автоматизировать веб-сайты с помощью Python. Вы сможете создать веб-робота, который сможет управлять любым веб-сайтом. Этот скрипт очень удобен для веб-скрапинга и автоматизации веб-сайтов.
👍 - если было полезно
#полезные_сниппеты
@python_practics
👍15
Внимание! - Вопрос!
В чем отличие copy() от deepcopy()?
Глубокая копия deepcopy() создает новую и отдельную копию всего объекта или списка со своим уникальным адресом памяти. Это означает, что любые изменения, внесенные вами в новую копию объекта или списка, не будут отражаться в исходной. Этот процесс происходит следующим образом: сначала создается новый список или объект, а затем рекурсивно копируются все элементы из исходного в новый.
Поверхностное копирование copy() также создает отдельный новый объект или список, но вместо копирования дочерних элементов в новый объект оно просто копирует ссылки на их адреса памяти. Следовательно, если вы сделаете изменение в исходном объекте, оно будет отражено в скопированном объекте, и наоборот. Короче говоря, обе копии зависят друг от друга.
#вопросы_из_собеседований
@python_practics
В чем отличие copy() от deepcopy()?
Поверхностное копирование copy() также создает отдельный новый объект или список, но вместо копирования дочерних элементов в новый объект оно просто копирует ссылки на их адреса памяти. Следовательно, если вы сделаете изменение в исходном объекте, оно будет отражено в скопированном объекте, и наоборот. Короче говоря, обе копии зависят друг от друга.
#вопросы_из_собеседований
@python_practics
👍12❤1
Ray
Фреймворк Ray, разработанный группой исследователей из Калифорнийского университета в Беркли, лежит в основе ряда популярных распределенных библиотек машинного обучения. Но его применение не ограничивается только задачами машинного обучения. С помощью Ray можно разбить и распределить по системам фактически любые задачи для Python.
Синтаксис Ray минимален, поэтому распараллелить существующие приложения можно без лишних усилий. Декоратор @ray.remote распределяет эту функцию по любым доступным узлам в кластере Ray с необязательными параметрами, указывающими, сколько процессоров, в том числе графических, нужно использовать.
Результаты каждой распределенной функции возвращаются в виде объектов Python, поэтому ими легко управлять и хранить, а объем копирования между узлами или внутри них сведен к минимуму. Последнее будет очень полезно, например, при работе с массивами NumPy.
Подробнее👇
#фреймворки_библиотеки
@python_practics
Фреймворк Ray, разработанный группой исследователей из Калифорнийского университета в Беркли, лежит в основе ряда популярных распределенных библиотек машинного обучения. Но его применение не ограничивается только задачами машинного обучения. С помощью Ray можно разбить и распределить по системам фактически любые задачи для Python.
Синтаксис Ray минимален, поэтому распараллелить существующие приложения можно без лишних усилий. Декоратор @ray.remote распределяет эту функцию по любым доступным узлам в кластере Ray с необязательными параметрами, указывающими, сколько процессоров, в том числе графических, нужно использовать.
Результаты каждой распределенной функции возвращаются в виде объектов Python, поэтому ими легко управлять и хранить, а объем копирования между узлами или внутри них сведен к минимуму. Последнее будет очень полезно, например, при работе с массивами NumPy.
Подробнее👇
#фреймворки_библиотеки
@python_practics
👍2🔥1
Получите тексты песен
Этот продвинутый скрипт покажет вам, как получить текст любой песни. Сначала вы должны получить бесплатный API-ключ на сайте Lyricsgenius, а затем выполнить следующий код.
👍 - если было полезно
#полезные_сниппеты
@python_practics
Этот продвинутый скрипт покажет вам, как получить текст любой песни. Сначала вы должны получить бесплатный API-ключ на сайте Lyricsgenius, а затем выполнить следующий код.
👍 - если было полезно
#полезные_сниппеты
@python_practics
👍13
Способы обхода GIL для повышения производительности
Global Interpreter Lock в Питоне предотвращает одновременное выполнение нескольких потоков в одном процессе интерпретатора Python. Т.е даже на многоядерном процессоре многопоточные Python-приложения будут выполняться только в одном потоке за раз. Это было введено для некой потокобезопасности при работе с объектами Python, упрощая тем самым разработку на уровне интерпретатора.
На первый взгляд, GIL кажется разумным компромиссом для упрощения разработки. Однако, когда есть многоядерные процессоры и появляется необходимость в высокопроизводительных вычислениях GIL серьезно ограничивает возможности масштабирования и параллельную работу.
В этой статье автор рассмотрел способы обхода GIL.
Подробнее👇
#статьи
@python_practics
Global Interpreter Lock в Питоне предотвращает одновременное выполнение нескольких потоков в одном процессе интерпретатора Python. Т.е даже на многоядерном процессоре многопоточные Python-приложения будут выполняться только в одном потоке за раз. Это было введено для некой потокобезопасности при работе с объектами Python, упрощая тем самым разработку на уровне интерпретатора.
На первый взгляд, GIL кажется разумным компромиссом для упрощения разработки. Однако, когда есть многоядерные процессоры и появляется необходимость в высокопроизводительных вычислениях GIL серьезно ограничивает возможности масштабирования и параллельную работу.
В этой статье автор рассмотрел способы обхода GIL.
Подробнее👇
#статьи
@python_practics
👍4
GPT-3. Руководство по использованию API OpenAI
Чему вы научитесь:
• Основам работы с API OpenAI для доступа к модели GPT-3;
• Форматированию и отправке запросов к API для получения текстовых ответов от модели;
• Использованию различных параметров запроса для настройки работы модели, таких как температура, максимальная длина ответа и прочие;
• Обработке и интерпретации ответов от модели GPT-3;
• Реализации различных приложений и сервисов, использующих API GPT-3 для генерации текста.
Эта книга предназначена для разработчиков, исследователей и всех, кто интересуется использованием и применением модели GPT-3 в своих проектах.
Книга в формате pdf👇
#курсы_книги
@python_practics
Чему вы научитесь:
• Основам работы с API OpenAI для доступа к модели GPT-3;
• Форматированию и отправке запросов к API для получения текстовых ответов от модели;
• Использованию различных параметров запроса для настройки работы модели, таких как температура, максимальная длина ответа и прочие;
• Обработке и интерпретации ответов от модели GPT-3;
• Реализации различных приложений и сервисов, использующих API GPT-3 для генерации текста.
Эта книга предназначена для разработчиков, исследователей и всех, кто интересуется использованием и применением модели GPT-3 в своих проектах.
Книга в формате pdf👇
#курсы_книги
@python_practics
👍2
С помощью какой функции можно вызвать метод из родительского класса python?
Anonymous Quiz
59%
super()
33%
self()
8%
meth()
🔥7
Мониторинг Celery
Существует популярный подход к покрытию метриками Celery: он заключается в запуске некоторого процесса, который слушает события из специальной очереди, на основе этих событий обновляются объекты метрик, а фоновый поток сервера отдаёт собранные метрики скраперу. В этой статье автор подробно разобрал события, их жизненный цикл, откуда и как их принимать. Также рассмотрел механизм удалённого управления (remote control), какие у него есть возможности и как им пользоваться. Обсудил существующие решения, чем они отличаются, и почему вам, возможно, будет выгодно сделать своё.
Подробнее👇
#статьи
@python_practics
Существует популярный подход к покрытию метриками Celery: он заключается в запуске некоторого процесса, который слушает события из специальной очереди, на основе этих событий обновляются объекты метрик, а фоновый поток сервера отдаёт собранные метрики скраперу. В этой статье автор подробно разобрал события, их жизненный цикл, откуда и как их принимать. Также рассмотрел механизм удалённого управления (remote control), какие у него есть возможности и как им пользоваться. Обсудил существующие решения, чем они отличаются, и почему вам, возможно, будет выгодно сделать своё.
Подробнее👇
#статьи
@python_practics
👍2