9 способов обмена массивом Numpy между процессами
В Python можно передавать массивы numpy между процессами.
Существует множество способов передать массив numpy между процессами, например, как аргумент функции, как наследуемую глобальную переменную, через очередь или трубу, как ctype Array и RawArray, файл с отображением памяти, массив с поддержкой SharedMemory или через менеджер.
https://superfastpython.com/numpy-share-array-processes/
👉 @BookPython
В Python можно передавать массивы numpy между процессами.
Существует множество способов передать массив numpy между процессами, например, как аргумент функции, как наследуемую глобальную переменную, через очередь или трубу, как ctype Array и RawArray, файл с отображением памяти, массив с поддержкой SharedMemory или через менеджер.
https://superfastpython.com/numpy-share-array-processes/
👉 @BookPython
Super Fast Python
9 Ways to Share a Numpy Array Between Processes - Super Fast Python
You can share numpy arrays between processes in Python. There are many ways to share a numpy array between processes, such as as a function argument, as an inherited global variable, via a queue or a pipe, as a ctype Array and RawArray, memory-mapped file…
👍2
Программирование на Python.pdf
1.6 MB
Программирование на Python
Полищук В.Ю.
Инженерная школа информационных технологий и робототехники, Томский политехнический университет
👉 @BookPython
Полищук В.Ю.
Инженерная школа информационных технологий и робототехники, Томский политехнический университет
👉 @BookPython
👍6
setattr()
С помощью данной функции мы можем менять атрибуты объекта во время выполнения программы. Первым аргументом она принимает объект, вторым — имя атрибута, а третьим — значение, которое необходимо установить.
👉 @BookPython
С помощью данной функции мы можем менять атрибуты объекта во время выполнения программы. Первым аргументом она принимает объект, вторым — имя атрибута, а третьим — значение, которое необходимо установить.
👉 @BookPython
👍8
Голосовой ввод с микрофона в Python
Установка пакета —
Важная вещь, которую вы должны иметь в виду, что здесь мы будем работать с микрофоном, поэтому вам необходимо знать идентификатор устройства вашего устройства ввода звука.
👉 @BookPython
Установка пакета —
pip install SpeechRecognition
.Важная вещь, которую вы должны иметь в виду, что здесь мы будем работать с микрофоном, поэтому вам необходимо знать идентификатор устройства вашего устройства ввода звука.
👉 @BookPython
👍8
Совет по чистому коду в Python
Избегайте использования слишком большого количества атрибутов для одного объекта. Старайтесь объединять их в группы, чтобы повысить связность, уменьшить количество связей и улучшить читаемость.
👉 @BookPython
Избегайте использования слишком большого количества атрибутов для одного объекта. Старайтесь объединять их в группы, чтобы повысить связность, уменьшить количество связей и улучшить читаемость.
👉 @BookPython
👍11🤔2❤1👎1👌1
Кэшированные атрибуты
Во встроенном пакете
Таким образом, при первом обращении к атрибуту производятся вычисления в методе, а при дальнейших берется уже кэшированное значение.
Подобное кэширование полезно в случаях, когда в методе производятся вычисления, которые нагружают систему и занимают много времени.
👉 @BookPython
Во встроенном пакете
functools
присутствует декоратор @cached_property
, позволяющий кэшировать результат метода и загнать его в атрибут.Таким образом, при первом обращении к атрибуту производятся вычисления в методе, а при дальнейших берется уже кэшированное значение.
Подобное кэширование полезно в случаях, когда в методе производятся вычисления, которые нагружают систему и занимают много времени.
👉 @BookPython
👍6👎1
Forwarded from Книги по Python | Books Python 📚
Applying Math with Python
Автор: Sam Morley (2020)
Во время чтения книги вы:
✔️Познакомитесь с базовыми пакетами, инструментами и библиотеками Python для решения математических задач;
✔️Изучите различные методы, которые помогут вам решать вычислительные задачи;
✔️Поймете основные концепции прикладной математики и способы их применения в информатике;
✔️Узнаете, как выбрать наиболее подходящий пакет, инструмент или технику для решения определенной проблемы;
✔️Научитесь реализовывать базовое построение графиков, изменять стили и добавлять метки с помощью matplotlib.
Скачать
👉 @python_360
Автор: Sam Morley (2020)
Во время чтения книги вы:
✔️Познакомитесь с базовыми пакетами, инструментами и библиотеками Python для решения математических задач;
✔️Изучите различные методы, которые помогут вам решать вычислительные задачи;
✔️Поймете основные концепции прикладной математики и способы их применения в информатике;
✔️Узнаете, как выбрать наиболее подходящий пакет, инструмент или технику для решения определенной проблемы;
✔️Научитесь реализовывать базовое построение графиков, изменять стили и добавлять метки с помощью matplotlib.
Скачать
👉 @python_360
❤3👍2
Шифрование и расшифровка паролей
Приведенный ниже скрипт выполняет шифрование и дешифрование текста с использованием пакета cryptography.
В приведенной выше реализации ключ шифрования генерируется с помощью метода
Шифрование и дешифрование текста выполняются с использованием класса Fernet из пакета cryptography, где текст шифруется с помощью метода
👉 @BookPython
Приведенный ниже скрипт выполняет шифрование и дешифрование текста с использованием пакета cryptography.
В приведенной выше реализации ключ шифрования генерируется с помощью метода
Fernet.generate_key()
и сохраняется в файле для дальнейшего использования.Шифрование и дешифрование текста выполняются с использованием класса Fernet из пакета cryptography, где текст шифруется с помощью метода
encrypt()
и расшифровывается с помощью метода decrypt()
.👉 @BookPython
👍6
Что будет в результате выполнения данного кода?
Данный код выдаст в виде результата пустой список
Как известно, попытка доступа к элементу списка с использованием индекса, превышающего число элементов (например, операция
Особенно неприятным это обстоятельство делает то, что оно может привести к ошибкам, которые действительно трудно отследить, поскольку во время выполнения кода не возникает никаких ошибок.
👉 @BookPython
Данный код выдаст в виде результата пустой список
[]
, а ошибка 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
Все мы помним старые игры, в которых впервые появилось трехмерное измерение.
Основоположником 3д игр стала игра Wolfenstein 3D, выпущенная в 1992 году а за ней и Doom 1993 года.
Эти две игры разработала одна компания: «id Software»
Она создала свой движок специально для этой игры, и в итоге получилась 3д игра, что считалось практически невозможным на те времена.
Но что будет если я скажу что это не 3д игра, а всего лишь симуляция и игра выглядит на самом деле примерно вот так?
https://habr.com/ru/articles/749764/
👉 @BookPython
👍6❤1
Узнаем разницу в днях между датами представленными в виде строк
В данном коде мы используем функцию
👉 @BookPython
В данном коде мы используем функцию
strptime
из модуля datetime
, чтобы преобразовать строки в объекты datetime
. Затем мы вычисляем разницу между датами с помощью оператора - и получаем абсолютное значение разницы с помощью функции abs. Наконец, мы получаем разницу в днях, используя атрибут days
разницы объекта.👉 @BookPython
👍3
Объединение PDF-файлов с помощью PyPDF2
Установите библиотеку с помощью pip.
Вы можете легко объединить PDF-файлы, используя приведенный ниже код. Просто замените имена в списке pdf-файлов на имена pdf-файлов, которые вы хотите объединить (если они находятся в том же каталоге, что и ваш Python-скрипт), или на ссылки на pdf-файлы.
👉@BookPython
Установите библиотеку с помощью 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
На Хабре уже не раз публиковались статьи про устройство формата ELF и написание файлов в таком формате вручную, но я не считаю лишним опубликовать и свой вариант решения этой задачи. В результате получился файл, вызывающий /bin/sh и занимающий всего 76 байт (что на 8 байт меньше, чем сумма длин заголовков ELF, необходимых для запуска).
https://habr.com/ru/articles/749480/
👉@BookPython
👍3
Какие нюансы есть в использовании чисел как ключей?
Числовые ключи в словарях подчиняются правилам сравнения чисел. Таким образом,
👉@BookPython
Числовые ключи в словарях подчиняются правилам сравнения чисел. Таким образом,
int(1)
и float(1.0)
считаются одинаковым ключом. Однако из-за того, что значения типа float
сохраняются приближенно, не рекомендуется использовать их в качестве ключей.👉@BookPython
👍3
Под капотом Python. Тонкости популярных конструкций with и contextmanager
В этой статье оглянемся в прошлое языка, ответим на вопросы, как написать менеджер контекста, как создать функцию генератор для декоратора contextmanager. Опытные разработчики могут узнать что-то новенькое или дополнить статью ценными комментариями.
https://habr.com/ru/companies/beeline_cloud/articles/749580/
👉@BookPython
В этой статье оглянемся в прошлое языка, ответим на вопросы, как написать менеджер контекста, как создать функцию генератор для декоратора contextmanager. Опытные разработчики могут узнать что-то новенькое или дополнить статью ценными комментариями.
https://habr.com/ru/companies/beeline_cloud/articles/749580/
👉@BookPython
Хабр
Под капотом Python. Тонкости популярных конструкций with и contextmanager
Привет, Хабр! Меня зовут Павел Корсаков, я python-разработчик, backend-developer в облачном провайдере beeline cloud . Язык программирования Python задумывался своим автором Гвидо ван Россумом как...
👍2
benedict
Если вы столкнулись с трудностями при работе со словарями в Python, то benedict может стать тем решением, которое вы искали.
benedict наследуется от встроенного типа dict, что означает, что он полностью совместим с существующими словарями и может быть использован в качестве замены в большинстве случаев.
Одной из ключевых особенностей benedict является поддержка
👉@BookPython
Если вы столкнулись с трудностями при работе со словарями в Python, то benedict может стать тем решением, которое вы искали.
benedict наследуется от встроенного типа dict, что означает, что он полностью совместим с существующими словарями и может быть использован в качестве замены в большинстве случаев.
Одной из ключевых особенностей benedict является поддержка
keylists
и keypaths
. Это упрощает доступ к значениям в сложных словарях и работу с ними без необходимости вручную копаться во вложенных уровнях.👉@BookPython
👍7😁1
Практическое руководство по метапрограммированию в Python
Метапрограммирование - это техника программирования, при которой программа может изменять или генерировать код во время выполнения. Она позволяет разработчикам писать код, который может анализировать, изменять или создавать другой код.
https://dev.to/karishmashukla/a-practical-guide-to-metaprogramming-in-python-691
👉@BookPython
Метапрограммирование - это техника программирования, при которой программа может изменять или генерировать код во время выполнения. Она позволяет разработчикам писать код, который может анализировать, изменять или создавать другой код.
https://dev.to/karishmashukla/a-practical-guide-to-metaprogramming-in-python-691
👉@BookPython
👍1
Как узнать заряд батареи компьютера с помощью Python
Для узнавания остатка зарядки на компьютере в операционной системе Windows можно использовать следующий код на Python.
Для выполнения этого кода нужно установить библиотеку psutil. Это можно сделать с помощью
Данный код сначала получает объект
👉@BookPython
Для узнавания остатка зарядки на компьютере в операционной системе 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
Я довольно давно пишу на Python и во многих проектах использовал multiprocessing — пакет стандартной библиотеки языка Python, который предоставляет интерфейс для работы с процессами, очередями, пулами процессов и многими другими удобными инструментами для параллельного программирования. В какой-то момент я понял, что мне не хватает более детального понимания работы этой библиотеки.
Мне захотелось залезть в исходники multiprocessing, разобраться и заодно написать статью. Данная статья в основном рассчитана на новичков в Python и тех, кто хочет подробнее разобраться в том, как именно создаются процессы и пулы в Python и погрузиться в детали реализации.
В статье я не буду рассказывать что такое процессы и зачем они нужны. Почитать самую базу про операционные системы и процессы можно, например, тут и тут. Также важно уточнить, что весь приведенный в статье код соответствует версии Python 3.11.4
https://habr.com/ru/articles/803607/
👉@BookPython
👍1