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

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

РКН clck.ru/3Ko7Hq
Download Telegram
argparse

Библиотека argparse является стандартным инструментом для обработки аргументов командной строки в Python. Она позволяет легко определить и обработать аргументы, передаваемые программе при запуске из командной строки.

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

👉@BookPython
👍3
Быстрая сортировка

Быстрая сортировка (quicksort) — это один из наиболее известных и широко применяемых алгоритмов сортировки. Она основана на использовании стратегии "разделяй и властвуй".

В этом коде мы выбираем элемент в середине списка в качестве "опорного". Затем мы создаем три списка: один для элементов меньше опорного, один для элементов равных опорному, и один для элементов больше опорного.

Мы рекурсивно применяем быструю сортировку к списку элементов, которые меньше и больше опорного элемента. Это продолжается до тех пор, пока не останется список, который нужно сортировать. В конце мы объединяем отсортированные списки вместе.

👉@BookPython
👍62
Подборка односложных выражений на языке 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
👍2🎉21
Как создать Minecraft на Python? Обзор библиотеки Ursina Engine

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

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

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

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

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

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

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

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

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

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

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

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

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

@BookPython
👍63
Пять декораторов 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
👍5
Нижнее подчеркивание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

👉 @BookPython
👍6
setattr()

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

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

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

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

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

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

👉 @BookPython
👍11🤔2👎1👌1
Кэшированные атрибуты

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

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

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

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

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

Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

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

👉 @BookPython
👍61