TGINSIGHT CHAT
Python Academy
@python_academy
EducaciónPython Academy — один канал вместо тысячи учебников Чат канала: @python_academy_chat Сотрудничество: @zubar89 Канал включён в перечень РКН: https://rkn.link/TVu
Posts recientes
Pág. 16 de 85 · 1,014 posts
Хеширование в Python используя hashlib Библиотека hashlib предоставляет алгоритмы хеширования, которые позволяют создавать уникальные хеш-суммы для данных. Это полезно для проверки целостности файлов, хранения паролей в безопасной форме и других задач безопасности данных. Пример кода: import hashlib # Пример хеширования строки с использованием SHA-256 data_to_hash = "Hello, World!" hashed_data = hashlib.sha256(data_to_hash.encode()).hexdigest() print(f"Исходные данные: {data_to_hash}") print(f"Хеш-сумма (SHA-256): {hashed_data}") В этом примере мы используем алгоритм SHA-256 из библиотеки hashlib для создания хеш-суммы строки "Hello, World!". Результат выводится в шестнадцатеричном формате. Библиотека hashlib является одним из лучших инструментов для обеспечения безопасности данных в Python. Путем использования различных алгоритмов хеширования, таких как MD5, SHA-256 и других, вы можете обеспечить целостность данных и повысить уровень безопасности ваших приложений. #python#hashlib
Ключевое слово nonlocal Похожее по функционалу на global, ключевое слово nonlocal позволяет обращаться к переменным из нелокальной области видимости. Поведение nonlocal заключается в том, что интерпретатор ищет переменную в ближайшей области видимости. Основное различие с global в том, что с помощью nonlocal нельзя получить переменные из глобальной области видимости. #переменные#nonlocal
Hashtags
Создаем словарь из набора ключей Для создания словаря из известного набора ключей и одинаковых значений часто используют генераторы словарей (dict comprehensions). Однако класс dict имеет удобный метод fromkeys, который был создан специально для таких случаев. #словари#fromkeys
Аргументы и параметры командной строки Для обработки передаваемых аргументов и создания удобный интерфейс командной строки в python есть отличный модуль argparse. Для начала нам нужно создать объект парсера ArgumentParser, в который мы уже сможем добавить аргументы с нужными параметрами с помощью метода add_argument. Первым параметром add_argument принимает либо имя обязательного позиционного аргумента, либо список опционального аргумента (опциональный аргумент идентифицируется через -). Также у add_argument есть множество необязательных опциональных параметров для работы с передаваемым значением аргумента, о них можете почитать в данной статье. После добавления всех аргументов, нам нужно их спарсить с помощью метода parse_args, на выходе мы получим объект со всеми содержащимися аргументами. #argparse
Hashtags
3 интересных функции в random Этот пост более для тех, у кого есть соответствующий бэкграунд и кто хочет знать про random больше среднего. betavariate() — используется для получения случайного числа с плавающей запятой от 0 до 1 на основе бета-распределения (применяется для статистических расчетов). gauss() — генерирует случайное число с плавающей запятой на основе распределения Гаусса (используется в теории вероятности). paretovariate() — возвращает случайное число с плавающей запятой на основе распределения Парето (используется в теории вероятности). Кстати, можете посмотреть на графиках результаты вызова этих функций по 100к раз тут, тут и тут. #random
Hashtags
Работа с форматированием текста textwrap — это стандартная библиотека, которая спользуется для форматирования текста в тех случаях, когда нам нужна красивая печать. Он предлагает функциональность аналогичную текстовым редакторам и текстовым процессорам. Немного о возможностях: textwrap.fill() — принимает текст и возвращает отформатированный текст, первая строка сохраняет свой отступ, а пробелы в начале каждой последующей строки вставляются в абзац. textwrap.dedent() — используется для удаления общего префикса пробела из всех строк в тексте. textwrap.indent() — используется для добавления текст префикса ко всем строкам в параграфе #python#textwrap
Параллельное Исполнение в Python с Помощью Модуля threading В данном посте, вы узнаете, как использовать модуль threading для создания параллельных потоков выполнения и улучшения производительности ваших приложений. threading позволяет создавать легковесные потоки, которые выполняются параллельно, ускоряя выполнение задач. Это особенно полезно в сценариях, где есть задачи, которые можно выполнить независимо друг от друга. Пример: import threading import time # Функция, которую будем выполнять в параллельных потоках def print_numbers(): for i in range(5): time.sleep(1) # Эмулируем длительную операцию print(f"Thread {threading.current_thread().name}: {i}") # Создаем два потока thread1 = threading.Thread(target=print_numbers, name="Thread 1") thread2 = threading.Thread(target=print_numbers, name="Thread 2") # Запускаем потоки thread1.start() thread2.start() # Ожидаем завершения потоков перед завершением программы thread1.join() thread2.join() print("Главный поток выполнения завершен.") В данном примере создаются два потока, каждый из которых выполняет функцию print_numbers, эмулируя длительную операцию с использованием time.sleep. Запуск потоков осуществляется с помощью метода start(), и главный поток ожидает их завершения с использованием метода join(). Модуль threading предоставляет удобные средства для работы с параллельными потоками в Python, что позволяет улучшить производительность приложений. Однако, следует быть внимательными при работе с потоками из-за потенциальных проблем с блокировками и синхронизацией данных. Попробуйте интегрировать threading в свой код и ускорьте выполнение задач! 💻 #python#threading
Hashtags
Временные файлы В стандартной библиотеке Python есть модуль tempfile, который содержит классы и методы для корректной работы со временными файлами и директориями. Функция TemporaryFile создает временный файл в системной директории и возвращает файлоподобный объект. Созданный временный файл будет автоматически удален по закрытию файла или при выходе из контекстного менеджера. Также другие процессы и приложения не смогут получить доступ к этому временному файлу. #tempfile
Hashtags
Вычисление размера объектов Для вычисления размера объекта мы можем использовать функцию getsizeof(object[, default]) из модуля sys. Так как в python все по сути является объектами, то и вычислить размер в памяти мы можем у любого такого объекта. И хотя все built-in (встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов. Аргумент default позволяет определить значение, которое будет возвращено, если тип объекта не предоставляет средства для извлечения размера и вызовет TypeError . Функция getsizeof вызывает метод __sizeof__ объекта и добавляет дополнительные служебные данные сборщика мусора. #getsizeof
Hashtags
Применяем pathlib взамен os В Python 3 стандартная библиотека включает модуль pathlib, предоставляющий функцию Path, которая обеспечивает всенеобходимое для эффективнойработы с путями к файлам. Одно из наиболеевпечатляющихпреимуществ использования pathlib - это упрощениеработыс путями за счет использования Path вместо os.path.join, представляя болеепростой и изящный метод, как показано на изображении. В общем, этот модуль предлагает замену функциям для работы с файловыми путями из модуля os, таким как os.mkdir или os.path, на более удобные альтернативы. #path#os
Упрощенная работа с JSON Казалось бы, куда еще проще, но есть один интересный пакет JMESpath, который позволяет декларативно указать, как извлекать элементы из документа JSON. Основные примеры использования показаны на картинке, там нет ничего сложного. Метод search принимает паттерн, по которому требуется извлечь данные, а также словарь (который в общем-то похож на JSON). Вообще возможностей у пакета достаточно, поэтому он достоен изучения и применения в проектах. Подробнее советую почитать в документации. #json#jmespath
Внедрение асинхронных задач с Taskiq Библиотека Taskiq предназначена для упрощения работы с асинхронными задачами в Python, позволяя разработчикам легко организовывать фоновуюобработкузадач. Это решение идеальноподходит для случаев, когда необходимо выполнять задачи, неблокируя основной поток приложения. Принцип работы с Taskiqпрост и интуитивно понятен, что демонстрируется на примерах в документации. Для примера использования библиотеки Taskiq, предположим, что вы хотите асинхронноотправитьemailбезблокирования основного потока выполнения вашего приложения. В этом примере мы создали простую асинхронную задачу для отправки email с использованием Taskiq. УстановкаTaskiq производится через менеджер пакетов pip. Более подробно о возможностях и применениибиблиотеки можно узнать в официальной документации. #python#taskiq