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

По всем вопросам @evgenycarter

№ 4869337666
Download Telegram
Подборка односложных выражений на языке Python, которые повысят вашу производительность

Deleting multiple elements from a list
li = [1, 2, 3, 4, 5]
del li[0:3]
# [4, 5]


Factorial of a number
import math; fact_5 = math.factorial(5)

https://github.com/Allwin12/python-one-liners

👉@BookPython
Как создать Minecraft на Python? Обзор библиотеки Ursina Engine

Среди любителей Minecraft много энтузиастов: пока одни просто играют, другие запускают целые серверы и пишут модификации. А кто-то идет дальше и разрабатывает собственные песочницы. Последнее достаточно просто сделать на Python.

Под катом делюсь основами работы с библиотекой Ursina Engine и показываю, как с помощью нее создать мир из кубов.

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

@BookPython
Ускорение кода на Python с помощью Numba Vectorize

В мире численных вычислений оптимизация производительности имеет первостепенное значение. Python с его интерпретируемой природой не всегда может предложить желаемую скорость для интенсивных вычислений. Однако на помощь приходит Numba, мощная библиотека, с ее возможностями вычислений, ориентированных на массивы, и компиляцией «точно в срок» (JIT). В этой статье мы рассмотрим одну из самых ценных функций Numba: Numba Vectorize.

https://coderslegacy.com/python-code-with-numba-vectorize/

@BookPython
Создание игрушечного языка программирования на Python

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

https://blog.miguelgrinberg.com/post/building-a-toy-programming-language-in-python

@BookPython
Разбиваем видео на n кол-во изображений

Для разбиения видео на n изображений вам понадобится использовать библиотеку OpenCV в Python.

В этом примере функция video_to_images принимает путь к видео (`video_path`) и количество желаемых изображений (`frames_count`). Она открывает видеофайл, читает каждый кадр и сохраняет каждый "шаг" кадров как отдельное изображение. Затем функция прекращает обработку, когда необходимое количество изображений сохранено.

Обратите внимание, что код использует целочисленное деление // и целочисленное преобразование int() для обеспечения, чтобы каждое изображение было сохранено через примерно одинаковое количество кадров, чтобы равномерно распределить их по времени видео.

@BookPython
Пять декораторов Python, которые могут сократить код в два раза

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

https://habr.com/ru/companies/slurm/articles/748176/

original https://python.plainenglish.io/five-python-wrappers-that-can-reduce-your-code-by-half-af775feb1d5

👉 @BookPython
Нижнее подчеркивание

1. _ используется, когда вам нужно придумать имена для значений, которые вам не нужны – например, в циклах for.

2. интерактивный режим использует _ для хранения результата последнего выполненного выражения.

3. руководство модуля gettext рекомендует псевдоним его функции gettext() для _(), чтобы минимизировать загромождение вашего кода.

👉 @BookPython
Python декораторы на максималках. Универсальный рецепт по написанию и аннотированию от мала до велика

Декорирование функций - это, наверное, самая сложная среди базовых и самая простая среди продвинутых фич языка Python. С декораторами, наверное, знакомы все джуны (хотя бы в рамках подготовки к собеседованиям). Однако, крайне мало разработчиков пишут их правильно. Особенно принимая во внимания тенденции последних нескольких лет к аннотированию всего и вся. Даже популярные open-source проекты (если основная часть их кода была написана до 2018 года) вряд ли дадут вам примеры декораторов, отвечающих всем современным требованиям к коду.

https://habr.com/ru/articles/750312/

@BookPython
Как в Python осуществляется управление памятью.

В Python объекты и структуры данных находятся в закрытой динамически выделяемой области private heap, которая управляется менеджером памяти Python. Он делегирует часть работы программам распределения ресурсов allocators, закрепленным за конкретными объектами, и одновременно с этим следит, чтобы они не выходили за пределы динамически выделяемой области.

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

👉 @BookPython
9 способов обмена массивом Numpy между процессами

В Python можно передавать массивы numpy между процессами.

Существует множество способов передать массив numpy между процессами, например, как аргумент функции, как наследуемую глобальную переменную, через очередь или трубу, как ctype Array и RawArray, файл с отображением памяти, массив с поддержкой SharedMemory или через менеджер.

https://superfastpython.com/numpy-share-array-processes/

👉 @BookPython
Программирование на Python.pdf
1.6 MB
Программирование на Python
Полищук В.Ю.

Инженерная школа информационных технологий и робототехники, Томский политехнический университет

👉 @BookPython
setattr()

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

👉 @BookPython
Голосовой ввод с микрофона в Python

Установка пакета — pip install SpeechRecognition.

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

👉 @BookPython
Совет по чистому коду в Python

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

👉 @BookPython
Кэшированные атрибуты

Во встроенном пакете functools присутствует декоратор @cached_property, позволяющий кэшировать результат метода и загнать его в атрибут.

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

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

👉 @BookPython
Applying Math with Python
Автор: Sam Morley (2020)

Во время чтения книги вы:
✔️Познакомитесь с базовыми пакетами, инструментами и библиотеками Python для решения математических задач;
✔️Изучите различные методы, которые помогут вам решать вычислительные задачи;
✔️Поймете основные концепции прикладной математики и способы их применения в информатике;
✔️Узнаете, как выбрать наиболее подходящий пакет, инструмент или технику для решения определенной проблемы;
✔️Научитесь реализовывать базовое построение графиков, изменять стили и добавлять метки с помощью matplotlib.

Скачать

👉 @python_360
Шифрование и расшифровка паролей

Приведенный ниже скрипт выполняет шифрование и дешифрование текста с использованием пакета cryptography.

В приведенной выше реализации ключ шифрования генерируется с помощью метода Fernet.generate_key() и сохраняется в файле для дальнейшего использования.

Шифрование и дешифрование текста выполняются с использованием класса Fernet из пакета cryptography, где текст шифруется с помощью метода encrypt() и расшифровывается с помощью метода decrypt().

👉 @BookPython
Что будет в результате выполнения данного кода?

Данный код выдаст в виде результата пустой список [], а ошибка IndexError не возникнет.

Как известно, попытка доступа к элементу списка с использованием индекса, превышающего число элементов (например, операция list[10] в списке выше), приводит к ошибке IndexError. Однако, попытка получить доступ к срезу списка с начальным индексом, превышающем количество элементов в списке, не приведет к IndexError и просто вернет пустой список.

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

👉 @BookPython
Ray Casting 3D игра на Python + PyGame

Все мы помним старые игры, в которых впервые появилось трехмерное измерение.
Основоположником 3д игр стала игра Wolfenstein 3D, выпущенная в 1992 году а за ней и Doom 1993 года.

Эти две игры разработала одна компания: «id Software»

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

Но что будет если я скажу что это не 3д игра, а всего лишь симуляция и игра выглядит на самом деле примерно вот так?

https://habr.com/ru/articles/749764/

👉 @BookPython