Библиотека Python разработчика | Книги по питону
19.6K subscribers
1.09K photos
344 videos
82 files
1.02K links
Полезные материалы для питониста по Фреймворкам Django, Flask, FastAPI, Pyramid, Tornado и др.

По всем вопросам @evgenycarter
Download Telegram
Безопасность в Django: защита от распространенных угроз веб-приложений

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

Я Алексей Петров, программист в команде коммуникационной платформы VK WorkSpace, расскажу о конкретных угрозах, с которыми сталкиваются веб-приложения, и о том, как грамотно защищать приложения, написанные на фреймворке Django.

https://habr.com/ru/companies/vk/articles/823740/

👉@BookPython
Паттерн проектирования «Стратегия»

«Стратегия» (Strategy) является одним из шаблонов поведения, определенных в книге «Банды четырёх» (Gang of Four, GoF). Этот паттерн относится к категории поведенческих паттернов и решает задачу определения семейства алгоритмов, инкапсуляции каждого из них и обеспечения их взаимозаменяемости. Это позволяет клиентскому коду выбирать нужный алгоритм независимо от его использования.

Основная идея паттерна «Стратегия» заключается в выделении алгоритмов в отдельные классы (стратегии) и предоставлении клиентскому коду возможности выбирать и подменять эти стратегии без изменения самого клиентского кода. Таким образом, паттерн способствует легкости поддержки, расширения и внесения изменений в систему.

👉@BookPython
Сканер отпечатков кошачьих носиков

Расширение сферы применения биометрической системы контроля доступа на других существ, открывает поистине потрясающие возможности.

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

https://habr.com/ru/companies/timeweb/articles/804151/

👉@BookPython
Расстояние Левенштейна

Расстояние Левенштейна (также известное как редакционное расстояние или расстояние редактирования) в программировании представляет собой метрику, которая измеряет различие между двумя строками в терминах минимального количества редакционных операций (вставок, удалений и замен символов), необходимых для преобразования одной строки в другую.

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

👉@BookPython
Чат-боты на все случаи жизни. 7 инструкций по созданию мини-приложений в Telegram

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

В подборке под катом — семь инструкций по созданию Telegram-ботов с разной функциональностью. Сохраняйте статью в закладки: пригодится как начинающим, так и опытным разработчикам.

https://habr.com/ru/companies/selectel/articles/751930/

👉 @bookpython
Отрицательные индексы

В Python можно использовать отрицательные индексы для обращения к элементам последовательностей (например, строк, списков, кортежей) с конца. Положительные индексы начинаются с 0 для первого элемента, 1 для второго и так далее. Отрицательные индексы начинаются с -1 для последнего элемента, -2 для предпоследнего и так далее.

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

👉@BookPython
Принципы работы и механизм reference counting?

reference counting (подсчёт ссылок) является одним из методов автоматического управления памятью.
Принцип работы reference counting в Python следующий:

— Каждый объект имеет счетчик ссылок (reference count), который отслеживает количество ссылок на данный объект. Счетчик ссылок инициализируется значением 1 при создании объекта.
— Когда переменная ссылается на объект, счетчик ссылок этого объекта увеличивается на 1.
— Если ссылка на объект удаляется или переназначается, счетчик ссылок уменьшается на 1.
— Когда счетчик ссылок объекта становится равным нулю, он может быть безопасно освобожден из памяти. При этом вызывается деструктор объекта (если он определен).

Reference counting работает быстро, однако, у него есть ограничения, особенно в случае циклических ссылок — когда несколько объектов ссылаются друг на друга и не имеют других активных ссылок. В этом случае, счетчики ссылок таких объектов никогда не достигают нуля, и они не могут быть освобождены с помощью механизма reference counting.

👉@BookPython
Распаковка кортежа

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

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

👉@BookPython
Анализ музыкальных предпочтений с использованием аудиоаналитики на Python

Музыка, неотъемлемая часть человеческой культуры, всегда отражала дух времени. Однако с наступлением цифровой эры и быстрого развития технологий, музыкальная индустрия столкнулась с революцией, которая изменила не только способы создания и распространения музыки, но и сам способ, которым мы взаимодействуем с ней. Сегодня музыкальные платформы и сервисы предоставляют нам огромный выбор композиций, а важную роль в этом процессе играют технологии аудиоаналитики.

https://habr.com/ru/companies/otus/articles/757130/

👉@BookPython
Тернарный оператор — это синтаксическая конструкция в Python, которая позволяет вам создавать более компактные условные выражения.

Тернарный оператор может быть удобным способом заменить простые if-else выражения, когда вам нужно быстро присвоить значение в зависимости от условия. Однако следует помнить, что слишком сложные выражения в тернарной форме могут ухудшить читаемость кода, поэтому стоит использовать их с умом.

👉@BookPython
Set comprehension

Set comprehension — это способ создания множества в языке программирования Python с использованием синтаксиса генератора. Он позволяет вам создать множество, применяя выражение к каждому элементу последовательности (например, списку или строки) и автоматически устраняя повторяющиеся значения.

👉@BookPython
Анализ и классификация текста на Python

Анализ и классификация текста являются важными задачами в области обработки естественного языка (NLP). Эти методы помогают извлекать полезную информацию из текстовых данных, что может быть применено в различных областях: от анализа отзывов клиентов до автоматической категоризации документов. В этой статье мы рассмотрим основные этапы анализа и классификации текста на Python, включая предобработку текста, методы извлечения признаков и использование моделей машинного обучения.

https://telegra.ph/Analiz-i-klassifikaciya-teksta-na-Python-07-09

👉@BookPython
Pickling

Pickling — это процесс сериализации объектов Python в байтовую последовательность и их обратное восстановление из этой последовательности. Pickling позволяет сохранять сложные объекты, такие как списки, словари, классы и пользовательские объекты, в байтовом формате, который затем можно сохранить в файле или передать по сети, а затем восстановить обратно в исходное состояние.

👉@BookPython
This media is not supported in your browser
VIEW IN TELEGRAM
❗️Java против Python❗️

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

➡️ С другой стороны, Java известна своей платформенной независимостью и надежностью. Это статически типизированный язык, что означает, что ошибки могут быть обнаружены во время компиляции, что повышает надежность кода. Философия Java "напиши один раз, запусти в любом месте" позволяет запускать приложения на разных платформах без изменений благодаря виртуальной машине Java (JVM). Это также делает Java хорошо подходящей для создания крупномасштабных, критичных к производительности приложений.

➡️ В целом, Python делает упор на простоту, читабельность и быстроту разработки, в то время как Java ставит во главу угла независимость от платформы, надежность и производительность. Выбор между этими двумя вариантами во многом зависит от требований проекта и предпочтений разработчика.

👉@BookPython
Фабрика декораторов

Фабрика декораторов — это структура или функция, которая генерирует и возвращает другие декораторы. Декораторы — это функции, которые используются для изменения поведения других функций или методов, путем обертывания (декорирования) их вокруг определенной логики.

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

👉@BookPython
Middleware (Django)

Middleware (промежуточное программное обеспечение) — это слой программного кода, который работает между различными компонентами приложения для обработки и управления запросами, ответами и другими аспектами обработки данных. Middleware обычно используется в веб-фреймворках и приложениях для обработки HTTP-запросов, но концепция middleware может применяться и в других контекстах.

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

👉@BookPython
Что такое MRO?

MRO (Method Resolution Order) — это механизм, используемый для определения порядка разрешения методов при наследовании классов и множественном наследовании. MRO определяет, какие методы будут вызываться в случае, когда у наследующего класса есть методы с одинаковыми именами, унаследованными от разных базовых классов.

MRO в Python определяется с помощью алгоритма C3 Linearization (C3 линеаризации). Этот алгоритм гарантирует, что порядок разрешения методов будет согласован и предсказуем вне зависимости от порядка наследования. Он предотвращает проблемы, связанные с неоднозначностями в множественном наследовании.

👉@BookPython
Метод count()

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

Метод принимает в качестве аргумента элемент, количество которого нужно посчитать и возвращает число — количество найденных вхождений элемента.

Работает для списков, кортежей, строк.

👉@BookPython
Печать календаря с помощью Python

👉@BookPython