Python RU
13.4K subscribers
871 photos
41 videos
36 files
1.12K links
Все для python разработчиков

админ - @haarrp

@python_job_interview - Python собеседования

@ai_machinelearning_big_data - машинное обучение

@itchannels_telegram - 🔥лучшие ит-каналы

@programming_books_it - it книги

@pythonl

РКН: clck.ru/3Fmy2j
加入频道
🌀 Сделайте свой чат-бот с ChatGPT и Python — всего за 3 минуты!

ChatGPT — это мощный инструмент, который позволяет разработчикам создавать диалоговых агентов и чат-ботов с использованием обработки естественного языка (NLP) и машинного обучения (ML). Он использует вариант языковой модели GPT (Generative Pre-trained Transformer) для генерации ответов на вводимые пользователем данные в диалоговом контексте. В этом блоге мы узнаем, как использовать Chat GPT API с Python для создания умного чат-бота.

➡️ Читать дальше
💫 Инструкция получения Api

@pro_python_code
🖥 Вопросы на собеседовании Python, ответы, на которые вам стоит знать.

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


➡️ Читать дальше

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Hackerforms — UI для Python

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

С вопросами можно обратиться в тред на реддите. И документация, куда же без неё.

Есть бесплатный и платные тарифы. На сайте можете глянуть примеры проектов на этом модуле.

@pro_python_code
🖥 Что нового в Python 3.11

Изменения в Python 3.11 включают:

-оптимизацию производительности с добавлением изменений, связанных с ускорением и inline-развёртыванием вызова функций, применением быстрых интерпретаторов типовых операций (x+x, x*x, x-x, a[i], a[i] = z, f(arg) C(arg), o.method(), o.attr = z, *seq), а также оптимизацией в рамках проектов Cinder и HotPy. Разработчики обещают прирост скорости выполнения кода на 10-60%. В среднем производительность при прохождении тестового набора pyperformance увеличилась на 25%;

- переработанный механизм кэширования байткода, что позволило сократить время запуска интерпретатора на 10-15%. Объекты с кодом и байткод статически размещаются интерпретатором, чтобы исключить стадии демаршалинга извлечённого из кэша байткода и преобразования объектов с кодом для размещения в динамической памяти;

- вывод информации о выражении при отображении трассировки вызовов в диагностических сообщениях. Расширенную информацию о трассировке также можно получить через API и использовать для сопоставления отдельных инструкций байткода с конкретной позицией в исходном коде, используя метод codeobject.co_positions() или функцию C API PyCode_Addr2Location(). Это упрощает отладку проблем, связанных с вложенными объектами словарей, множественными вызовами функций и сложными арифметическими выражениями;

- поддержку групп исключений, дающих программе возможность генерировать и обрабатывать сразу несколько разных исключений одновременно. Для группировки нескольких исключений и их совместного вызова предложены новые типы ExceptionGroup и BaseExceptionGroup, а для выделения отдельных исключений из группы добавлено выражение “except*”;

- добавление метода add_note() в класс BaseException для прикрепления текстового примечания к исключению;
добавление типа Self, представляющего текущий закрытый класс, для аннотирования методов, возвращающих экземпляр своего класса, более простым путём;

- добавление специального типа LiteralString, который может включать только строковые литералы, совместимые с типом LiteralString. Тип можно использовать для ограничения передачи функциям строковых аргументов, где произвольная подстановка частей строк может привести к уязвимостям;

- добавление TypeVarTuple, охватывающего произвольное число типов;
- включение модуля tomllib с функциями для разбора формата TOML в стандартную библиотеку;

- возможность пометки отдельных элементов типизованных словарей (TypedDict) метками Required и NotRequired для определения обязательных и необязательных полей;

- добавление класса TaskGroup в модуль asyncio с реализацией асинхронного контекстного менеджера, ожидающего завершения группы задач. Добавление задач в группу осуществляется при помощи метода create_task();

- добавление декоратора классов, методов и функций @dataclass_transform, при указании которого система проверки статических типов трактует объект, как при использовании декоратора @dataclasses.dataclass;

- добавление возможности использования атомарной группировки ((?>…)) и possessive-квантификаторов (*+, ++, ?+, {m,n}+) в регулярных выражениях;

- добавление опции командной строки “-P” и переменной окружения PYTHONSAFEPATH для отключения автоматического прикрепления к sys.path потенциально небезопасных файловых путей;

- улучшение утилиты py.exe для платформы Windows, в которой - реализована поддержка синтаксиса “-V:<company>/<tag>” в дополнение к “-<major>.<minor>”;

- преобразование многих макросов в C API в обычные или статические inline-функции;

- удаление модулей uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev и sunau. Удаление функции PyUnicode_Encode*.

🔥 Смотреть примеры

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Как оптимизировать размер памяти при обработке крупных файлов.

Нередко я сталкиваюсь с большими объемами данных, которые требуют дополнительной обработки с помощью известной всем библиотеки Pandas. Однако, загружая или сохраняя огромные датасеты, неприятно столкнуться с ошибкой Memory error. В таких ситуациях применение таких методов, как .drop_duplicates() (удаление дубликатов) или .dropna() (удаление пустых строк) слабо влияет на сокращение занимаемого объема памяти.

Существует несколько способов эффективного решения проблем с памятью.

➡️ Читать дальше

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Youtube-dl

Крутой инструмент командной строки на Python для загрузки видео с YouTube.com и других видеосайтов.

sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl


🖥 Github

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
💲 Прогнозирование временных рядов криптовалют с Python

В обанкротившейся криптофирме FTX отсутствует, по меньшей мере, 1 миллиард долларов клиентских средств, а их токен FTX потерял большую часть своей стоимости в ноябре 2022 года. Как бы вы уберегли свой портфель от огромных потерь в случае краха?

Это руководство поможет вам понять метод очистки данных временных рядов и то, как крупные финансовые компании создают популярные индексы, такие как S &P 500 или Nasdaq. Самое главное, как создать индекс вашего портфеля, содержащий различные криптовалюты, чтобы отслеживать ваши показатели и использовать машинное обучение для прогнозирования движения индекса в ближайшем будущем.

Цель этого руководства – помочь новичку, который немного разбирается во временных рядах, но испытывает трудности с обработкой реальных наборов данных. Вы сможете быстро восполнить пробел с помощью этого руководства. Я надеюсь, что каждый сможет найти что-то полезное в нём.

➡️ Читать дальше

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🐼 Pandas vs Polars: сравнение синтаксиса и скорости 🐻

Pandas - это незаменимая библиотека Python для Data Science. Её самым большим недостатком является то, что она может быть медленной при операциях с большими наборами данных. Polars - это альтернатива Pandas, предназначенная для более быстрой обработки данных.

Polars - это альтернатива Pandas, предназначенная для более быстрой обработки данных.

Эта статья кратко познакомит вас с библиотекой Polars и сравнит её с Pandas в отношении синтаксиса и скорости.

Читать дальше
Зеркало
Код

@pro_python_code
Вывод уникального идентификатора переменной

Уникальный идентификатор переменной находится с помощью метода id(). Для этого нужно просто передать в метод имя переменной.

Идентификатор объекта – это целое число, которое гарантированно будет уникальным и постоянным для этого объекта в течение его жизненного цикла.

@pro_python_code
Forwarded from Python tests
Проверка данных при помощи декораторов

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

В данном примере, декоратор only_admins ищет HTTP заголовок X-Auth-Token во входящем запросе и затем проверяет, если он совпадает с секретным токеном администратора, который для простоты мы сделали константой.

Если нет заголовка токена, или если он есть, но не совпадает, то функция abort() из Flask выполняется для генерации ответа 401 и остановки дальнейших запросов. В противном случае запрос может пройти, вызвав при этом декорированную функцию.

Обратите внимание, как в примере функции представления admin_route() используются декораторы app.route и only_admins. Это называется цепью декораторов.

@pro_python_code
🖥 Мощные утилиты Python для анализа данных

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

В примерах этой статьи используются данные из датафрейма S&P 500, которые я сохранил в файле pickle.

Читать дальше
Зеркало

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
5️⃣ Хитростей Python, которые отличают Senior-разработчика от Juniors

В этой статье мы рассмотрим пять подходов к решению распространённых задач кодинга Senior-способами, а не Junior.

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

Читать
Зеркало

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Вопросы и ответы на собеседовании для Python Разработчиков

Репозиторий, в котором собраны популярные вопросы по Python и смежным темам: Django, ООП, принципы программирования, HTML, фронтенд и БД.

🖥 Github

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Отступы в Python: так ли это плохо?

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

Python действительно требует применения определенного стиля отступов, и очень строг в этом отношении. Пренебрегая этим требованием, вы рискуете получить IndentationError или, что еще хуже, неправильный код. Критики Python любят противопоставлять ему такие языки, как Java, C# и R, позволяющие делать отступы в коде как угодно, и всякий раз акцентируют на том, как сильно им не хватает этой свободы в Python.

Приведет ли свобода отступов к улучшению кода на Python? Действительно ли отступы плохи? Так ли необходима нам свобода отступов? Чтобы ответить на эти вопросы, обратимся к примерам кода.

📌 Читать

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 ChatGPT в качестве помощника по программированию и анализу данных на Python.

ChatGPT от OpenAI это… да ладно, вы и сами знаете, что такое ChatGPT. Вы уже достаточно прочитали об этом, и представления больше не нужны.

А если вы всё-таки не знаете, что такое ChatGPT, сначала взгляните на эту статью, а затем вернитесь, чтобы продолжить.

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

Сейчас вы узнаете, что может сделать ChatGPT, когда дело доходит до написания кода из спецификаций, которые мы предоставляем. Как обычно, начнём по нарастающей – с простого!

Читать дальше
Зеркало
Как заработать с помощью ChatGPT

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Оптимизация запросов Django ORM

Django ORM (Object Relational Mapping) — одна из самых мощных функций Django. Благодаря ей мы можем взаимодействовать с базой данных, используя код Python вместо SQL.

Использование ORM дает несколько преимуществ:

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

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

Но также у ORM есть некоторые недостатки:

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

Django не может угадать, когда нам нужно использовать связанную таблицу, поэтому она не будет выполнять JOINs для нас, когда они нам нужны.

ORM дает нам неверное ощущение легкости, и мы не всегда понимаем то, что мы делаем, что может создавать большую нагрузку на сервер. У нас нет простого способа узнать, что доступ к атрибуту в объекте может вызвать дополнительный запрос к базе данных, который можно было бы предотвратить с помощью JOIN.
Чтобы преодолеть недостатки, нужно поближе познакомиться с ORM и понять как она работает под капотом.

Читать

@pro_python_code
🔥 7 расширенных операций со списками Python, которые могут эффективно оптимизировать ваш код

В этой статье мы покажем вам семь расширенных операций со списками, которые сделают ваш код аккуратнее, чище и качественнее.

Читать
Зеркало

@pro_python_code
🖥 Color Stealing

Python-реализация алгоритма кражи цвета. Этот метод строит эстетически приятные фракталы путем копирования цветовых узоров из заданного изображения в бинарный фрактал.

🖥 Github

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM