Библиотека питониста | Python, Django, Flask
40.5K subscribers
2.77K photos
75 videos
51 files
4.35K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://t.me/proglibrary/9197

Курс по ML: https://cl

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
Что выведет код с картинки выше?
Anonymous Quiz
28%
(2, 4)
10%
[2, 4]
55%
(1, 2, 1, 2)
7%
[1, 2, 1, 2]
😁34👏9👍21
👾🛡️🤖 42 секунды и 5 запросов: как взламывают генеративные ИИ-модели

Ты знал, что злоумышленникам для взлома генеративных ИИ достаточно всего 42 секунды и пяти запросов? В этой статье мы разберём, как это происходит, какие уязвимости существуют и как защитить свои системы от подобных атак.

👉 Читать здесь
5😁3👍1
⚙️ Как настроить автоматическое тестирование с pytest и GitHub Actions

Настроим автоматическое выполнение тестов каждый раз при обновлении кода.

1⃣ Установка pytest
pip install pytest


2⃣ Пример теста
# test_sample.py

# A simple test to check if the sum function works correctly
def test_sum():
assert sum([1, 2, 3]) == 6, "Sum function did not return the expected result"


3⃣ Настройка GitHub Actions
Создайте файл .github/workflows/python-app.yml с содержимым:
name: Python application

# This triggers the workflow on every push or pull request to the main branch
on: [push, pull_request]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x' # Specify the Python version you want to use

- name: Install dependencies
run: |
pip install pytest

- name: Run tests
run: |
pytest
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
🧩⚛️ React + структуры данных = суперкод: 7 примеров для практики

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

Читать статью
🔥3
🐍 Ультимативный гайд по обработке ошибок в Python

Охватывает:
▪️Основные подходы к обработке ошибок: LBYL и EAFP;
▪️Типы ошибок: новые (созданные самим кодом) и «всплывающие» (возникающие при вызове функций).
▪️Обработку различных типов ошибок.
▪️Пример плохой обработки ошибок.

👉 Читать обо всём подробнее по этой ссылке
👍43
😎 Python 3.14 стал 𝜋thon

Тут с основной веткой CPython смёрджили пулл-реквест, добавляющий поддержку алиаса «𝜋thon» для виртуальных окружений Python версии 3.14.

Теперь это новая пасхалка

💬 Как думаете, сможем собрать под этим постом 314 лайков? Давайте попробуем👇
👍181🤔9😁8🔥6😍1
Вакансии «Библиотеки программиста» — ждем вас в команде!

Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
👉Переводчик и автор оригинальных статей

Подробности тут

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Ждем ваших откликов 👾
👍5
🧑‍💻 HPy — улучшенный API для Python

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

В качестве преимуществ HPy разработчики указывают:

▪️расширения, написанные на HPy, работают с той же скоростью, что и «обычные» расширения;
▪️значительно быстрее на альтернативных реализациях, таких как PyPy, GraalPy;
▪️расширения, построенные для универсального ABI HPy, могут быть загружены без изменений на CPython, PyPy, GraalPython;
▪️в режиме отладки вы можете легко выявить распространённые проблемы, такие как утечки памяти, неправильное управление временем жизни объектов, некорректное использование API.

🔗 Ссылка на документацию
🔗 Ссылка на репозиторий проекта
👍42
🎀 Разбираемся с декораторами: подборка материалов

🔴 All About Decorators in Python
Этот подборка от Python Morsels с роликами, объясняющими, как работают декораторы, и упражнениями на их написание.

🔴 Как устроены декораторы в python?
Один из обучающих роликов канала «Хитрый питон» на YouTube. Другие ролики про это можно найти, собственно, на канале.

🔴 Понимаем декораторы в Python'e, шаг за шагом. Шаг 1
Эта статья на «Хабре» по-прежнему актуальна для базового понимания работы декораторов. Однако в новых версиях Python появились дополнительные возможности, которые в статье не освещены.

🔴 Часть про декораторы из сборника лекций «Практикум по компьютерным технологиям»
Основное — в одной статье.
❤‍🔥5👍2
🤼 Генеративно-состязательная нейросеть: ваша первая GAN-модель на PyTorch

Подробная инструкция построения генеративно-состязательных нейросетей (GAN) на примере двух моделей, реализованных с помощью фреймворка глубокого обучения PyTorch в нашей статье. 👇

🔗 Статья

У нас есть курс как для начинающих программистов, так и для тех, кто уже шарит:
🔵 Алгоритмы и структуры данных
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🐍✍️ Pydantic 2: Полное руководство для Python-разработчиков — от основ до продвинутых техник

Это гайд на «Хабре», который расскажет о том:

▪️что такое Pydantic;
▪️что такое модели и поля;
▪️как использовать кастомную валидацию полей (через field_validator) и глобальную валидацию на уровне модели (model_validator);
▪️как интегрировать Pydantic с ORM-моделями.

🔗 Читать статью
9👍8🔥1
📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих»

Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!

🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
13👍6🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🧑‍💻 Для VS Code вышло расширение, позволяющее оценивать разные нейросети в задачах кодинга

Copilot Arena — это бесплатный AI-ассистент, который предоставляет доступ к популярным моделям типа GPT-4o, Codestral, Llama-3.1.

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

👉 Скачать Copilot Arena тут
👍8🥱2
💩 Используй dict.get правильно

Нередко метод get используется для проверки, существует ли ключ в словаре.

Вот пример:
quantities = {"pink": 3, "green": 4}
color = "blue"
if not quantities.get(color):
print(f"Uh oh! There's no value for {color}")
# -> Uh oh! There's no value for blue


Метод get вернёт None, если заданный ключ отсутствует в словаре. Но на деле мы проверяем, является ли возвращаемое значение ложным. Это будет работать до тех пор, пока значения в нашем словаре не будут ложными (например, нулём или пустой строкой). Если же что-то изменится...
quantities = {"pink": 3, "green": 4, "blue": 0}
color = "blue"
if not quantities.get(color):
print(f"Uh oh! There's no value for {color}")
# -> Uh oh! There's no value for blue

Как видите, результат может быть не совсем ожидаемым.

✔️ Для таких задач лучше использовать оператор in (или, в данном случае, not in):
color = "blue"
if color not in quantities:
print(f"Uh oh! There's no value for {color}")


#советы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍392👏2🥱2😢1
Зачем нужен deque?

Deque является более предпочтительным выбором по сравнению с обычным списком, когда требуется высокая скорость добавления и удаления элементов как с начала, так и с конца контейнера.

Deque обеспечивает линейную сложность O(1) для операций добавления и удаления, в то время как стандартный список имеет сложность O(n) для этих же операций.

Кроме того, deque поддерживает использование стандартных функций, таких как sum, min, max и других.
👍26👏1
🐍 TypedDict в Python: зачем это нужно

TypedDict был введён в версии 3.8 и позволяет создавать аннотации типов для словарей.

🔹Полезен при работе с частичными обновлениями данных, как в HTTP PATCH запросах. TypedDict позволяет гибко оперировать отсутствующими полями, что сложно реализовать в dataclass.
🔹TypedDict поддерживает использование в **kwargs, что расширяет его функциональность в различных сценариях, таких как передача зависимостей или настройка тестов.

🔗 Более подробно о преимуществах TypedDict можно прочесть здесь
👍6
👆Методы строк в Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34👏5🥰4👾2🌚1