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

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

РКН clck.ru/3Ko7Hq
Download Telegram
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🤔21👎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
Узнаем разницу в днях между датами представленными в виде строк

В данном коде мы используем функцию strptime из модуля datetime, чтобы преобразовать строки в объекты datetime. Затем мы вычисляем разницу между датами с помощью оператора - и получаем абсолютное значение разницы с помощью функции abs. Наконец, мы получаем разницу в днях, используя атрибут days разницы объекта.

👉 @BookPython
👍3
Объединение PDF-файлов с помощью PyPDF2

Установите библиотеку с помощью pip.

pip install PyPDF2

Вы можете легко объединить PDF-файлы, используя приведенный ниже код. Просто замените имена в списке pdf-файлов на имена pdf-файлов, которые вы хотите объединить (если они находятся в том же каталоге, что и ваш Python-скрипт), или на ссылки на pdf-файлы.

import PyPDF2

def merge files (pdf files: list):
# Create a PDF merger obiect
pdf merger = PyPDF2.PdfFileMerger ()
# Loop through the list and append each PDF to the merger
for pdf_file in pdf_files:
pdf_merger.append(pdf_file)
# Output file for the merged PDF
output_pdf = "merged_file.pdf"
pdf_merger.write(output_pdf)
pdf_merger.close()

# List of PDF files to merge
pdf_files = ["file_1", "files_2"]

if name == " main
merge_files (pdf_files)
print("PDFs merged successfully.")


👉@BookPython
👍2
Пишем микро-shellcode в формате ELF вручную

На Хабре уже не раз публиковались статьи про устройство формата ELF и написание файлов в таком формате вручную, но я не считаю лишним опубликовать и свой вариант решения этой задачи. В результате получился файл, вызывающий /bin/sh и занимающий всего 76 байт (что на 8 байт меньше, чем сумма длин заголовков ELF, необходимых для запуска).

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

👉@BookPython
👍3
Какие нюансы есть в использовании чисел как ключей?

Числовые ключи в словарях подчиняются правилам сравнения чисел. Таким образом, int(1) и float(1.0) считаются одинаковым ключом. Однако из-за того, что значения типа float сохраняются приближенно, не рекомендуется использовать их в качестве ключей.

👉@BookPython
👍3
Под капотом Python. Тонкости популярных конструкций with и contextmanager

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

https://habr.com/ru/companies/beeline_cloud/articles/749580/

👉@BookPython
👍2
benedict

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

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

Одной из ключевых особенностей benedict является поддержка keylists и keypaths. Это упрощает доступ к значениям в сложных словарях и работу с ними без необходимости вручную копаться во вложенных уровнях.

👉@BookPython
👍7😁1
Практическое руководство по метапрограммированию в Python

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

https://dev.to/karishmashukla/a-practical-guide-to-metaprogramming-in-python-691

👉@BookPython
👍1
Как узнать заряд батареи компьютера с помощью Python

Для узнавания остатка зарядки на компьютере в операционной системе Windows можно использовать следующий код на Python.

Для выполнения этого кода нужно установить библиотеку psutil. Это можно сделать с помощью pip install psutil.

Данный код сначала получает объект battery с помощью функции psutil.sensors_battery(), которая предоставляет информацию о состоянии батареи компьютера. Затем он проверяет, подключена ли зарядка, с помощью свойства power_plugged.

👉@BookPython
👍3
Как работает multiprocessing в Python под капотом

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

Мне захотелось залезть в исходники multiprocessing, разобраться и заодно написать статью. Данная статья в основном рассчитана на новичков в Python и тех, кто хочет подробнее разобраться в том, как именно создаются процессы и пулы в Python и погрузиться в детали реализации.

В статье я не буду рассказывать что такое процессы и зачем они нужны. Почитать самую базу про операционные системы и процессы можно, например, тут и тут. Также важно уточнить, что весь приведенный в статье код соответствует версии Python 3.11.4

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

👉@BookPython
👍1