Python Hub - сборище Питонистов
رفتن به کانال در Telegram
Уголок счастья для любого питониста. Сотрудничество или заказы: @leshunist https://shcoder.dev - студия разработки ShcoderDevelopment https://t.me/pythonhub_chat - чат
نمایش بیشتر1 712
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-97 روز
-1330 روز
آرشیو پست ها
Оптимизация производительности с Numba в Python 🐍
🔍 Что такое Numba?
Numba - это JIT-компилятор (Just-In-Time), который преобразует Python и NumPy код в быстрый машинный код. Это позволяет значительно ускорить выполнение вычислительно-интенсивных задач. 🧠⚡️
💡 Как использовать Numba?
Использовать Numba очень просто! Вот пример:
from numba import jit
import numpy as np
@jit(nopython=True)
def sum_of_squares(arr):
sum = 0
for i in range(arr.shape[0]):
sum += arr[i]**2
return sum
# Пример использования
arr = np.arange(1000000)
result = sum_of_squares(arr)
print(f"Сумма квадратов: {result}")
🔬 Что происходит?
1️⃣ Мы импортируем декоратор @jit из Numba
2️⃣ Применяем декоратор к нашей функции
3️⃣ Numba компилирует функцию при первом вызове
4️⃣ Последующие вызовы используют скомпилированную версию 🚀
📊 Результаты
На больших массивах Numba может ускорить код в десятки раз! Например, для массива из миллиона элементов:
- Обычный Python: ~1 секунда ⏱
- С Numba: ~0.01 секунды ⚡️
🎯 Советы по использованию
- Используйте режим nopython=True для максимальной производительности
- Numba лучше всего работает с числовыми типами данных и NumPy массивами
- Избегайте использования Python-объектов внутри jit-функций🚀 Привет, коллеги!
Многие из вас знакомы с Habr. Кто-то уже делился там своими статьями, а кто-то, возможно, столкнулся с модерацией или другими сложностями.
Мы с командой начали новый проект — DevGurt — площадку для общения и публикации статей для всех, кто так или иначе связан с Dev-IT индустрией. Проект сейчас находится на стадии MVP (минимально жизнеспособный продукт), но мы активно работаем над его развитием и расширением.
(☺️https://devgurt.com/☺️)
Чем вы можете помочь? Мы ждем вашей поддержки, советов и, конечно, обратной связи! Регистрируйтесь, публикуйте статьи, делитесь мнениями. Нам важно знать, что вы думаете!
(Форма обратной связи - https://forms.gle/hra11i99sDsh31XG7)
💡 В планах — подключение монетизации, чтобы авторы могли получать вознаграждения за свой труд.
Присоединяйтесь и давайте вместе создадим что-то крутое!
https://devgurt.com/
p.s. Небольшая статья о том, как пользоваться платформой
https://devgurt.com/offtop/16-cto-takoe-devgurt-i-kak-im-polzovatsya
Обновил старый гайдик 🔄
+добавил, как работать с медиа
+добавил, как добавить иконку
+добавил, как добавить библиотеки, которые pip'ом устанавливались
гооооо смотреть⛳️
https://www.youtube.com/watch?v=3JJ15GuzozQ
Разбор ⬇️
z = [x, y] создает список z, содержащий два элемента: список x и список y. Таким образом, z — это [[1, 2, 3], [4, 5]]. y.append(6) добавляет элемент 6 в конец списка y. После этой операции y становится [4, 5, 6]. Поскольку z содержит ссылки на x и y, любые изменения, внесенные в x или y, будут отражены в z. Когда y изменяется путем добавления 6, это изменение становится видимым в z, поскольку z содержит ссылку на исходный список y.
Было, что быстро печатаете код и вводите буквы в разном порядке?🧐🧐 Думаю, что почти у всех было!😆😆
📚 Python-разработчики, сегодня поговорим о мощной библиотеке importlib! 🐍
🔍 Что такое importlib?
Это встроенная библиотека Python, которая предоставляет интерфейс для механизма импорта. С ее помощью вы можете программно импортировать модули, перезагружать их и даже создавать свои собственные импортеры! 🚀
💡 Вот простой пример использования importlib:
import importlib
# Динамический импорт модуля
math = importlib.import_module('math')
# Использование импортированного модуля
print(math.pi) # Выводит 3.141592653589793
# Перезагрузка модуля
importlib.reload(math)
🔧 С importlib вы можете:
• Динамически импортировать модули
• Перезагружать модули во время выполнения
• Создавать пользовательские импортеры
• Работать с пространствами имен пакетов
🏆 Эта библиотека особенно полезна при разработке плагинов, создании расширяемых приложений или отладке кода.
Изучайте, экспериментируйте и становитесь Python-гуру! 🧠💻
https://docs.python.org/3/library/importlib.htmlБиблиотека python-nubia в Python 📚🐍
Сегодня мы рассмотрим библиотеку python-nubia, которая предназначена для создания командных интерфейсов в Python. Эта библиотека была разработана компанией Facebook и, хотя сейчас она больше не развивается, она все еще заслуживает внимания за свои уникальные возможности и подходы.
Удобство использования 🚀
Одним из ключевых преимуществ python-nubia является её простота и удобство использования. Библиотека позволяет легко создавать командные интерфейсы, используя аннотации и декораторы. Это делает код более читабельным и поддерживаемым. Разработчики могут быстро добавлять новые команды и опции, что значительно ускоряет процесс разработки.
Гибкость и расширяемость 🔧
Python-nubia предоставляет разработчикам высокую степень гибкости и расширяемости. Библиотека поддерживает регистрацию пользовательских команд, создание сложных иерархий команд и даже интеграцию с другими библиотеками. Это делает её отличным выбором для проектов, требующих сложных командных интерфейсов. Несмотря на то, что библиотека больше не развивается, её архитектура и подходы могут быть полезны для изучения и использования в других проектах.
Примеры использования 📋
https://github.com/facebookarchive/python-nubia
Разбор 😃
Оператор «is» проверяет идентичность объектов. Таким образом мы сравниваем идентичность переменной c, которая указывает на ячейку памяти и некого текста
Библиотека pywebview в Python 🪐
Установка pywebview
Первым шагом к использованию pywebview является его установка. К счастью, это очень просто. Достаточно выполнить следующую команду:
pip install pywebview
Теперь у нас есть все необходимое, чтобы начать работу с pywebview. 📦
Создание простого окна
После установки pywebview, давайте создадим простое окно, которое будет отображать наш веб-контент. Вот базовый пример:
import webview
# Создаем окно с URL
webview.create_window('Пример pywebview', '<https://example.com>')
# Запускаем приложение
webview.start()
Этот код создаст окно с названием "Пример pywebview" и загрузит страницу по указанному URL. Это отличный способ быстро превратить ваше веб-приложение в настольное приложение. 🌐
Больше примеров и документации тут:
https://github.com/r0x0r/pywebviewПомните как-то спрашивал, нужен ли ресурс со стажировками?⁉️
Есть заготовочка такого парсера.🥱
С безработного по лайку, кста😅
https://www.youtube.com/watch?v=3nY4wCk66RQ
🕰 Библиотека delorean для работы со временем и датами в Python
Одним из главных преимуществ библиотеки
delorean является её простота использования. Она предоставляет разработчикам возможность легко создавать, манипулировать и форматировать временные объекты.
Пример кода
import delorean
# Создание объекта текущего времени
now = delorean.now()
print("Текущее время:", now)
# Преобразование времени в строку в формате ISO
iso_format = now.datetime.isoformat()
print("ISO формат:", iso_format)
🌐 Работа с временными зонами
Работа с временными зонами может быть сложной задачей, но delorean значительно облегчает этот процесс. Библиотека предоставляет удобные методы для преобразования времени между разными временными зонами, учитывая все нюансы и правила переходов между летним и стандартным временем. Это делает её незаменимым инструментом для приложений, которые должны учитывать временные зоны своих пользователей.
Пример кода
import delorean
# Создание объекта времени в определённой временной зоне
dt = delorean.parse("2023-10-10 10:00:00", timezone="UTC")
# Преобразование времени в другую временную зону
local_dt = dt.shift("US/Eastern")
print("Время в восточной временной зоне США:", local_dt)
⏳ Временные интервалы и манипуляции
Еще одной важной функцией delorean является работа с временными интервалами. Библиотека позволяет легко вычислять разницу между двумя временными точками, а также добавлять или вычитать временные интервалы. Это делает её полезной для задач, связанных с планированием, аналитикой и многими другими областями, где важна точная работа с временными данными.
### Пример кода
import delorean
# Создание двух объектов времени
start = delorean.parse("2023-10-10 10:00:00")
end = delorean.parse("2023-10-10 12:30:00")
# Вычисление разницы между двумя временными точками
diff = end - start
print("Разница во времени:", diff)
# Добавление временного интервала
new_time = start + delorean.timedelta(hours=2)
print("Новое время:", new_time)📚 Библиотека Loguru на Python
🔍 Введение
В мире Python программирования, логирование играет важную роль в отслеживании работы приложений и выявлении ошибок. Одним из самых удобных и мощных инструментов для этой задачи является библиотека Loguru. В этом посте мы рассмотрим основные преимущества и возможности Loguru, которые делают его отличным выбором для логирования в Python.
🚀 Простота использования
Одним из основных преимуществ Loguru является его простота использования. В отличие от стандартной библиотеки logging, которая может показаться сложной и громоздкой, Loguru предлагает простой и интуитивно понятный интерфейс. Для начала работы достаточно импортировать библиотеку и начать логирование с помощью одной строки кода:
from loguru import logger
logger.info("Привет, Loguru!")
Это позволяет значительно сократить время на настройку и сразу приступить к логированию.
⚙️ Гибкость и мощность
Loguru предоставляет широкие возможности для настройки логирования. Вы можете легко настроить формат сообщений, уровни логирования и маршрутизацию логов. Например, вы можете отправлять логи в разные файлы в зависимости от их уровня важности:
logger.add("debug.log", level="DEBUG")
logger.add("error.log", level="ERROR")
logger.debug("Это сообщение для отладки")
logger.error("Это сообщение об ошибке")
Или же отправлять их на удалённый сервер для дальнейшего анализа. Библиотека также поддерживает асинхронное логирование, что делает её отличным выбором для высоконагруженных приложений.
🔧 Встроенные дополнительные функции
Помимо стандартных возможностей логирования, Loguru включает в себя множество дополнительных функций, которые делают его ещё более привлекательным. Например, библиотека поддерживает автоматическое добавление контекстной информации к логам, такую как имя функции, строка кода и т.д. Также существует возможность автоматического ротации логов, что позволяет избежать переполнения дискового пространства:
logger.add("file_{time}.log", rotation="500 MB")
logger.info("Это сообщение будет записано в новый файл при достижении лимита в 500 MB")
Эти и другие функции делают Loguru мощным инструментом для профессионального логирования.
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
